0

ユーザーがクリックされたときに、インデックス ページにユーザーの詳細を表示しようとしています。

次のようなインデックスページにユーザーのリストがあります

<% @users.each do |user| %>
   <%= link_to user.name, '', {:id => user.id, :name => 'user', :remote => true}
<% end %>

私のjavascriptで

$('#mydiv').html("<%= escape_javascript(render(:partial => '/users/show', :locals => {:id => #{params['id']}})) %>"

しかし、パラメータ「id」がこのページに渡されていないため、ユーザーの詳細を表示できませんでした。

このパラメータを取得して、ユーザーがクリックしたときにインデックス ページにパーシャルをレンダリングする方法。

4

1 に答える 1

2

この場合、コードを少し見直してください。リンクで show メソッドを直接呼び出し、コントローラを編集して JavaScript に応答させる必要があります。

コードを表示:

<%= link_to user.name, user_path(user), remote: true %>

コントローラーコード:

def show
    @user = User.find(params[:id])
    respond_to do |format|
        format.html
        format.js
    end
end

users/show.js.erbという新しいビューを作成します。

$("#mydiv").html("<%= escape_javascript(render(:partial => '/users/user_show', :locals => {:user => @user})) %>");

このビューは、すべてのユーザー データをレンダリングできる部分ビューを呼び出しています。このビューはusers/_user_show.html.erbと呼ばれます

<div class="myuser">
    <%= user.name %>
</div>

それが役立つことを願っています

于 2012-12-17T14:46:44.027 に答える