【问题标题】:How to pass param['id'] to the index page如何将 param['id'] 传递到索引页面
【发布时间】:2012-12-04 16:01:05
【问题描述】:

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

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

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

当用户被点击时,如何获取这个参数并在索引页面中渲染部分。

【问题讨论】:

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


    【解决方案1】:

    在这种情况下,您应该稍微检查一下您的代码。您应该直接在链接中调用 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>
    

    希望有帮助

    【讨论】:

      猜你喜欢
      • 2014-06-12
      • 2022-09-26
      • 2021-04-11
      • 2017-02-02
      • 2021-08-17
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多