0

我有两个模型,提案和提案回复。在我的路线中,我在提案中嵌套了提案回复。我有这个表格:

<%= 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 的方式。我还能做错什么?

4

1 回答 1

1

我猜你根本不需要使用路径助手。如果您有正确的路线定义:

resources :proposals do
  resources :proposal_replies
end

你应该能够传递[@proposal, @proposal_reply]form_for

<%= form_for [@proposal, @proposal_reply], :remote => true do |f| %>
于 2013-01-06T17:13:11.773 回答