我有两个模型,Proposals和Proposal Replies。在我的路线中,我已经在提案中嵌套了提案回复。我有这样的表格:
<%= form_for proposal_proposal_reply_path(@proposal, @proposal_reply), :remote => true do |f| %>
<%= f.text_area :body %>
<%= f.submit 'Submit' %>
<% end %>
当我点击提交时,我收到路由错误:
No route matches [POST] "/proposals/1/proposal_replies/4/edit"
为什么要尝试POST来编辑,而不仅仅是PUTing?我可以通过插入一些像这样的URL选项来破解它:
<%= form_for proposal_proposal_reply_path(@proposal, @proposal_reply), :remote => true, :method => :put, :url => {:action => :update} do |f| %>
但这并不像Rails那样。还有什么我可能做错了?
答案 0 :(得分:1)
我猜您根本不需要使用路径助手。如果您有正确的路线定义:
resources :proposals do
resources :proposal_replies
end
您应该可以将[@proposal, @proposal_reply]
传递给form_for
:
<%= form_for [@proposal, @proposal_reply], :remote => true do |f| %>