0

如图所示,我正在使用 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 %>

感谢所有帮助过的人!!

4

1 回答 1

0
<%= link_to u.name, '/users/show', :util_id => u.id, :remote => true %>

以这种格式link_to :util_id转到 html_options,所以你会得到像

<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 %>
于 2013-01-07T07:38:51.743 回答