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 回答