【问题标题】:Passing params between link_to and render partial在 link_to 和 render partial 之间传递参数
【发布时间】:2012-12-20 21:41:16
【问题描述】:

我正在使用 link_to 来渲染部分内容(如单击 link_to 时渲染部分内容),如图所示。我想将参数 u.id 传递给部分但我没有成功:(我做错了什么?我很绝望。

编辑:终于让它工作了。这是我的代码:

在我看来,users/show.html.erb - “u”是集合中的每个实用程序

<% @utilities.each do |u| %>
    <%= link_to u.name, { :controller => :users, :action => :show, :util_id => u.id }, :remote => true %>
<% end %>

在我的用户结束时#show 控制器方法

    respond_to do |format|
        format.html {
            redirect_to @current_user and return
        }
        format.json {
            redirect_to @current_user.json and return
        }
        format.js {
          @util_id = params[:util_id]
          redirect_to @current_user and return
        }
    end

显示.js.erb:

$("#editUtil").prepend('<%= escape_javascript(raw render :partial => "utilEdit", :locals => {:util => params[:util_id]} ).html_safe%>');

我的部分:_utilEdit.html.erb

TEST: <%= Utility.find(util).name %>

感谢所有帮助过的人!!

【问题讨论】:

    标签: jquery ruby-on-rails ruby-on-rails-3


    【解决方案1】:
    <%= link_to u.name, '/users/show', :util_id => u.id, :remote => true %>
    

    link_to:util_id这种格式转到html_options,所以你会得到类似的html

    <a href="/users/show" util_id="1" data-remote="true">...
    

    但你需要类似的东西

    <a href="/users/show?util_id=1" data-remote="true">...
    

    尝试使用命名路径,或 { :controller, :action, :params } 结构来代替

    <%= link_to u.name, show_users_path(:util_id => u.id), :remote => true %>
    

    <%= link_to u.name, { :controller => :users, :action => :show, :util_id => u.id }, :remote => true %>
    

    【讨论】:

    • 谢谢!但我收到错误“#:0x007fb79b36aa88> 的未定义方法 `show_users_path'”:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多