1

このオブジェクトに基づいてソートできるように、オブジェクトを別のコントローラーに渡そうとしています。dgroups has_many プラン。dgroup.id に基づいて計画を並べ替えようとしています。次のコードがあります。

dgroup ビュー:

    <% @dgroup.each do |dgroup| %>
<tr>
<td><%= dgroup.dings.map(&:id) %></td>
<td><%= dgroup.id %></td>
<td><%= link_to 'Show Plans', plans_path %></td>
<td><%= link_to 'Edit', edit_dgroup_path(dgroup) %></td>
<td><%= link_to 'Destroy', dgroup, method: :delete, data: { confirm: 'Are you sure?' } %></td>

計画コントローラー:

    def index
     @dID = Dgroup.find(params[:id])
     @plans = @dID.plans
    respond_to do |format|
     format.html # index.html.erb
     format.json { render json: @plans }
    end
 end

次のように、dgroups ビューから diaggroup を渡そうとしました。

<td><%= link_to 'Show Plans', plans_path(dgroup) %></td>

しかし、これはうまくいきませんでした。理由はわかりませんが、エラーが発生したため、コントローラーが私が計画を送信していると想定しているように見えました。助言がありますか?私はRubyに本当に慣れていないので、さまざまなコントローラーのメソッドがどのように呼び出されることになっているのか興味があります。ありがとう!

4

2 に答える 2

0

ネストされたリソースを使用するのに適した場所ではありませんか?

resources :dgroups do
  resources :plans do
  end
end

rake routes
    dgroup_plans GET    /dgroups/:dgroup_id/plans(.:format)          plans#index
...
    dgroup_plan GET    /dgroups/:dgroup_id/plans/:id(.:format)       plans#show

<td><%= link_to 'Show Plans', dgroup_plans(dgroup) %></td>
<td><%= link_to 'Edit Plan', dgroup_plan(dgroup, plan) %></td>
于 2013-05-15T18:36:59.163 に答える