1

安らかなパスを持つネストされたコントローラーを使用しようとしているため、すべてが整理されています。これまでのroutes.rbのコピーは次のとおりです。

 map.root :controller => "dashboard"

  map.namespace :tracking do |tracking|
    tracking.resources :companies
  end

  map.namespace :status do |status|
    status.resources :reports
  end

子コントローラ パスへのリンクは現在正常に機能しています。

<%= link_to "New Report", new_status_report_path, :title => "Add New Report" %>

しかし、親コントローラーのインデックス パスだけにマップしようとすると、問題が発生しました。

<%= link_to "Status Home", status_path, :title => "Status Home" %>

リンクを含むページをロードすると、最終的にこれが得られます。

undefined local variable or method `status_path' 

この種のリンクに対してルートが正しく設定されていますか?

更新:親の「ステータス」コントローラーに関連付けられているデータがないことを追加する必要があります。これは、ステータスに関連付けられた残りのコントローラー (レポートなど) のカテゴリー プレースホルダーとして機能するだけです。

4

2 に答える 2

0

/status をステータス コントローラーに送りたい場合は、名前空間ではなくリソースにする必要があります。ほぼ同じ方法でリソースをネストします。

map.resource :status do |status|
  status.resources :reports
end
于 2010-07-23T20:40:41.943 に答える
0

名前空間はリソースではありません。

map.resources :statuses do |status|
  status.resources :reports
end

また、status_path への呼び出しには ID が必要です。

status_path(:id => @status.id)

また

status_path(@status)

于 2010-07-23T20:40:46.860 に答える