0

そのため、プロジェクト構造全体が次のように設定されているカテゴリがネストされたプロジェクトリソースがあります。

StartPoint::Application.routes.draw do
  get "log_out" => "sessions#destroy", :as => 'log_out'
  get "log_in"  => "sessions#new", :as => 'log_in'
  get "sign_up" => "users#new", :as => 'sign_up'

  root :to => 'Projects#index'

  resources :users
  resources :sessions
  resources :discussion_comments
  resources :comments

  resources :projects do
    resources :categories
    resources :duscussions
    resources :tasks
  end

end

タスクのインデックスページでそれを言って、カテゴリフォームをレンダリングしようとしています

<%= form_for project.categories.build do |f| %>
    <%= f.label :category%>
    <%= f.text_field :category%>
    <%= hidden_text_field :project_id, :value => project.id %>
    <%= f.submit%>
<% end %>

これをレンダリングすると、プロジェクト オブジェクトを次の形式に渡します。

<%= render 'categories/createcategory', :project => @project%>

これは、カテゴリ インデックス ページではなく、タスク インデックス ページでレンダリングされます。

そのため、そのタイプの情報 (さらに必要な場合は教えてください) を使用して、カテゴリが明らかに未定義である理由を説明します。

エラー

undefined method `categories' for #<Project:0xb687150c>

Extracted source (around line #1):

1: <%= form_for ([project, project.categories.build]) do |f| %>
2:  <%= f.label :category%>
3:  <%= f.text_field :category%>
4:  <%= hidden_text_field :project_id, :value => project.id %>
4

1 に答える 1

0

フォームに問題があります。それはおそらくform_for [@project, Category.new]

プロジェクト コントローラで初期化したことを確認する必要があり@projectます。

于 2012-09-08T02:09:38.520 に答える