无法在belongs_to模型上使用嵌套表单 - 我该如何处理?

时间:2014-01-13 21:46:26

标签: ruby-on-rails ruby-on-rails-4

我有两个模型:ClientsProjects

class Client < ActiveRecord::Base
  has_many :projects
end

class Project < ActiveRecord::Base
  belongs_to :client
end

我对我的应用有三个要求:

  • 我希望能够转到列出属于该客户端的所有项目的客户端页面
  • 我希望从/projects/new/创建项目,在表单上有一个下拉框,列出所有客户端以选择关联
  • 我希望用户能够从同一表单添加新客户端(项目#1下拉列表中的最后一项是“添加新”),以便他们可以在需要时同时创建项目和客户端

让我失望的是第3项。我假设能够从项目表单添加新客户端,我必须在accepts_nested_attributes_for上添加Project,但我不能在belongs_to模型上添加{<1}}。 / p>

我是否设计了这个错误?我该怎么处理?我一直无法找到足够的答案,但这似乎无关紧要。

谢谢!

1 个答案:

答案 0 :(得分:1)

这个轨道广播将在这里用几句话来解释它:

http://railscasts.com/episodes/196-nested-model-form-revised

从本质上讲,你需要改变你对关系的思考方式。它应该是客户对其项目的accepted_nested_attributes_for。因此,虽然您可以通过项目控制器执行此操作,但实际上您将创建form_for @client ...