我有两个带有has_many / belongs_to关联的模型。
#Projects.rb
class Project < ActiveRecord::Base
has_many :tasks
end
#Task.rb
class Task < ActiveRecord::Base
belongs_to :project
end
他们的路线嵌套如下:
#Routes.rb
resources :projects do
resources :tasks
end
我想创建一个form_for来创建一个新任务。
但我希望这样做,以便用户可以使用collection_select
方法选择任务所属的项目。
我的问题是form_for将project作为创建表单操作的参数之一。
= form_for @task do |f|
引发NoMethodError:
undefined method tasks_path for <#class:blablabla>
我知道我可以通过输入form_for的参数来解决这个问题,但我的想法是使用'collection_select'使其成为表单的一部分。
我该如何解决这个问题?
答案 0 :(得分:1)
您只能为new
和create
#Routes.rb
resources :projects do
resources :tasks, except: [:new, :create]
end
resources :tasks, only: [:new, :create]
缺点是你可能需要一个单独的表格:new vs:edit