0

だから私は一晩中この問題に取り組んできました.....私はリソースを次のように設定しました:

resources :projects do
   resources :categories
end

私の形式の部分では、次のものがあります。

<%= form_for ([@project, @category]) do |f| %>
<% end %>

エラーが表示されます:

No route matches {:controller=>"categories", :format=>nil, :project_id=>#<Project id: nil, project_title: nil, user_id: nil, created_at: nil, updated_at: nil>}

Try running rake routes for more information on available routes. 

カテゴリのルートは次のとおりです。

     project_categories GET    /projects/:project_id/categories(.:format)           categories#index
                        POST   /projects/:project_id/categories(.:format)           categories#create
   new_project_category GET    /projects/:project_id/categories/new(.:format)       categories#new
  edit_project_category GET    /projects/:project_id/categories/:id/edit(.:format)  categories#edit
       project_category GET    /projects/:project_id/categories/:id(.:format)       categories#show
                        PUT    /projects/:project_id/categories/:id(.:format)       categories#update
                        DELETE /projects/:project_id/categories/:id(.:format)       categories#destroy

何が起こっているのか、なぜこれが機能しないのですか。私はすべてを試しました。プロジェクト変数をレンダーパスに渡してから実行しようとしました:(差分エラーが発生し、カテゴリが未定義であると不平を言います)

form_for project.categories.build do |f|

私も試してみました

form_for ([project, project.categories.build]) do |f|

しかし、これにより上記と同じエラーが発生します。

何か案は?私はグーグルで検索し、記事を読み、講演を読みました.....それは単純なものでなければなりません

4

2 に答える 2

0

あなたのプロジェクトはないようです。最初にプロジェクトを作成する必要があります。あなたのコントローラーはどのように見えますか?@project は入力されていますか?

編集:明確にするために、最も可能性の高いカテゴリ>新しいメソッドは、関連するコントローラー内のものです。

于 2012-09-08T04:07:29.320 に答える
0

関数からスペースを取り除いてみてください: form_for(... メソッドと括弧を開く間にスペースがあると、Ruby はしばしば失敗します。

于 2012-09-08T04:07:49.633 に答える