Ruby on rails 3 如何在Rails 3中创建一个有效的嵌套表单?(我发现一个路由错误。)

Ruby on rails 3 如何在Rails 3中创建一个有效的嵌套表单?(我发现一个路由错误。),ruby-on-rails-3,nested-forms,formtastic,Ruby On Rails 3,Nested Forms,Formtastic,我有一个客户端和ProposalRequest模型,如下所示: class Client < ActiveRecord::Base has_many :proposal_requests accepts_nested_attributes_for :proposal_requests, :allow_destroy => true end class ProposalRequest < ActiveRecord::Base belongs_to :client

我有一个客户端和ProposalRequest模型,如下所示:

class Client < ActiveRecord::Base
  has_many :proposal_requests
  accepts_nested_attributes_for :proposal_requests, :allow_destroy => true
end

class ProposalRequest < ActiveRecord::Base
  belongs_to :client

end
这是我目前的表格:

-semantic_form_for [Client.new, ProposalRequest.new] do |f|
   =f.inputs
   =f.buttons
但在这之后,我因为这个错误而陷入困境

No route matches {:controller=>"proposal_requests", :client_id=>#<Client id: nil, name: nil, title: nil, organization: nil, street_address: nil, city: nil, state: nil, zip: nil, phone: nil, email: nil, status: "interested", how_you_heard: nil, created_at: nil, updated_at: nil>}
没有路由匹配{:controller=>“建议请求”,:client_id=>#}

有人能帮我找出这个错误吗

问题在于,嵌套路由旨在向现有的
客户机添加新的
ProposalRequest
。如果您想同时创建
客户端
提议请求
,只需使用@Client do | f |
新客户端路径和
语义表单即可

我建议您在
客户机\u控制器中执行以下操作:

def new
  @client = Client.find(params[:id])
  @client.proposal_requests.build
end
在你看来:

semantic_form_for @client do |f|      
  = f.inputs # fields for client
  = f.inputs :name => 'Proposal Request', :for => :proposal_requests do |pf|
    = pf.input :some_proposal_request_attribute
  = f.buttons
希望这有帮助。一定要看所有的例子,并做一些尝试和错误,以得到你的形式,你想要它

semantic_form_for @client do |f|      
  = f.inputs # fields for client
  = f.inputs :name => 'Proposal Request', :for => :proposal_requests do |pf|
    = pf.input :some_proposal_request_attribute
  = f.buttons