Ruby on rails 3 如何在Rails 3中创建一个有效的嵌套表单?(我发现一个路由错误。)
我有一个客户端和ProposalRequest模型,如下所示: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
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