Im mit Ajax, um eine Controller-Aktion zu machen, wenn Sie ohne erneutes Laden der Seite geklickt. Ich kann nicht scheinen, dass die js-Ansicht gerendert wird.rendern eine Aktion von einem Klick auf eine Schaltfläche ohne Seite neu laden: Ajax
transactions_controller:
require "braintree"
def index
@reservations = Reservation.where("transaction_id = transaction_id", true)
end
def escrow
@reservation = Reservation.find(params[:id])
@escrow = Braintree::Transaction.release_from_escrow(@reservation.transaction_id)
@reservation.update_attributes pay_completed: true
respond_to do |format|
format.html
format.js { render :layout=>false }
end
end
private
def reservation
@reservation = Reservation.find(params[:id])
end
Meine Link auf index.html.erb:
<% @reservations.each do |reservation| %>
\t \t \t <% @transaction = Braintree::Transaction.find(reservation.transaction_id) %>
\t \t \t
<tr>
<td><%= reservation.id %></td>
<td><%= reservation.transaction_id %></td>
<td><%= reservation.reviser.user.username %></td>
<td><%= reservation.user.username %></td>
<td><%= @transaction.status %></td>
<td><%= @transaction.escrow_status %></td>
<td><%= reservation.created_at %></td>
<td><%= reservation.completed %></td>
<td><%= link_to "stock", escrow_path(reservation), :remote => true %></td>
</tr>
\t \t \t
\t \t \t
\t \t \t
\t \t \t <% end %>
routes.rb:
get 'admin/transactions' => 'admin/transactions#index'
patch 'admin/transactions/:id' => 'admin/transactions#escrow', :as => 'escrow'
escrow.js:
$('#escrow').html("<%= j (render @escrow) %>");
Ich bin nicht sicher, was ich falsch mache! Danke! :)
in meinen Protokollen, wenn ich klicke, bekomme ich app/admin/transactions.rb: 26: in 'block in escrow ' app/admin/transactions.rb: 25: in' escrow' –