如何将param ['id']传递给索引页面

时间:2012-12-17 14:37:26

标签: javascript jquery ruby-on-rails-3 activerecord actionview

我试图在单击用户时在索引页面上呈现用户详细信息。

我在索引页面中有用户列表,如

<% @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'未传递到此页面。

如何获取此参数并在单击用户时在索引页面中呈现部分。

1 个答案:

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

希望有所帮助