我试图在单击用户时在索引页面上呈现用户详细信息。
我在索引页面中有用户列表,如
<% @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']}})) %>"
但我无法呈现用户详细信息,因为param'id'未传递到此页面。
如何获取此参数并在单击用户时在索引页面中呈现部分。
答案 0 :(得分: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>
希望有所帮助