Редактировать: похоже, что определение @categories снова в методе создания задачи позволило устранить ошибку.Все еще работаю над обновлением категории, когда я отправляю задачу, потому что сейчас она игнорируется.Любые идеи?
Привет всем,
Я пытаюсь создать раскрывающийся список в моем первом проекте Rails, чтобы выбрать из списка категорий для задачи.Я использовал модель категоризации, чтобы связать модель задач с категорией.
После некоторых усилий у меня появился раскрывающийся список, который правильно отображается в новой форме задачи, но когда я нажимаю кнопку Отправить,Форма дает следующую ошибку:
NoMethodError in Tasks#create
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.map
Любая помощь, которую вы можете предоставить, очень ценится.Вот код, который я использую (выдержка для краткости) ...
Соответствующая часть моей новой формы задачи (HAML):
= f.fields_for :categorization do |sub|
= sub.label :name, 'Category'
= sub.collection_select(:category_id, @categories, :id, :name, :include_blank => 'Select a Category')
tasks_controller.rb:
def new
@task = Task.new
@categories = Category.all
end
def create
@task = current_user.tasks.build(params[:task])
if @task.save
flash[:success] = "Task created!"
redirect_to root_path
else
render 'new'
end
end
классификация.rb:
class Categorization < ActiveRecord::Base
belongs_to :task
belongs_to :category
validates :task_id, :presence => true
validates :category_id, :presence => true
end
category.rb:
class Category < ActiveRecord::Base
has_many :categorizations, :dependent => :destroy
has_many :tasks, :through => :categorizations
validates :name, :presence => true
end
task.rb
class Task < ActiveRecord::Base
attr_accessible :title, :body
has_many :categorizations, :dependent => :destroy
has_many :categories, :through => :categorizations
accepts_nested_attributes_for :categorizations
validates :title, :presence => true
validates :body, :presence => true
end
rout.rb:
resources :tasks
resources :categories do
member do
get :tasks
end
end
Есть мысли?Большое спасибо за то, что взглянули, и дайте мне знать, если вам нужно что-нибудь еще, чтобы помочь.
Haidn