0

ここは RoR のダミーなので、お手柔らかにお願いします。私は Utility オブジェクトのコレクションを繰り返し処理していますが、それぞれについて、クリックするとその請求書の特定の編集情報を持つ部分をレンダリングする「編集」リンクが必要です。

パーシャルをレンダリングし、u.id パラメータをそのパーシャルに渡して、ユーティリティ固有の情報を表示できるようにしたいと考えています。私は Rails が苦手ですが、どうすればこれを達成できますか? 私が取り組んでいるビューは、users#show の部分的な render_uts です。ありがとう!

編集:ほとんど機能しています。クリックするとパーシャルがレンダリングされます。しかし、u.id または任意のパラメーターをパーシャルに渡す方法がわかりません。

show.html.erb

<% @utilities.each do |u| %>
     <%= link_to u.name, '/users/show', :remote => true %>
<% end  %>

_utilEdit.html.erb

<%= Utility name should go here? %>

ユーザーコントローラーの show メソッドの最後に:

respond_to do |format|
   format.js
end

そして、show.js.erb で:

$("#editUtil").prepend('<%= escape_javascript(render 'utilEdit') %>');

($("#editUtil") は私のプレースホルダーです。)

4

2 に答える 2

0

私は実際にあなたが何を望んでいるのか理解していません。使用できるメンバールートであるため、ユーティリティを編集したいとします。またはedit_utility_path(u) 、ローカルのように渡すことができる同じUIで部分的にレンダリングしたいとします<%= render :partial=>"...",:locals=>{"utility_id"=>u.id} %>

于 2013-01-07T05:30:51.613 に答える
0

まず、show.html.erb でユーティリティ ID を show アクションに渡す必要があります。

<% @utilities.each do |u| %>
 <%= link_to u.name, utility_path(u), :remote => true %>
 <!-- or if you have some strange routes -->
 <%= link_to u.name, "/utilities/#{u.id}", :remote => true %>
<% end %>

次に、 show アクションでユーティリティを見つける必要があります

def show
  @utility = Utility.find(params[:id])
end

あなたの partial(_utilEdit.html.erb) では、次のように書く必要があります:

<%= utility.name %>

show.js.erb では、@utility を渡す必要があります。

$("#editUtil").prepend('<%= escape_javascript(render :partial => 'utilEdit', :locals => {:utility => @utility}) %>');

パーシャルと変数の詳細:パーシャルのローカル変数

于 2013-01-07T20:24:35.067 に答える