0

示されているように、link_to を使用してパーシャルをレンダリングしています (link_to をクリックするとパーシャルがレンダリングされます)。param 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 %>

users#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

Show.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 に移動するため、次のような 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 %>
于 2013-01-07T07:38:51.743 に答える