没有路由匹配form_for帮助程序的嵌套路由中的[POST]

时间:2011-11-22 08:12:40

标签: ruby-on-rails routes

我正在尝试提交表单并继续遇到此错误:

No route matches [POST]

这是我的表格:

<%= form_for(@issue) do |f| %>
    <%= render 'fields', :f => f %>
    <div class="actions">
        <%= f.submit "Submit" %>
    </div>
<% end %>

和我的路线:

  resources :apps do
    resources :issues
  end

我认为我错过了定义哪个应用程序在form_for中的内容,但我不确定?

这是我的问题创建行动:

  def create
    @issue = Issue.new(params[:issue])
    @issue.app_id = params[:app_id]
    if @issue.save
      flash[:success] = "Issue added!"
      redirect_to @issue
    else
      render 'new'
    end
  end

1 个答案:

答案 0 :(得分:2)

您还需要将应用程序放在表单中。因为你有问题嵌套在应用程序中。

<%= form_for([@app, @issue]) do |f| %>
  <%= render 'fields', :f => f %>
  <div class="actions">
    <%= f.submit "Submit" %>
  </div>
<% end %>

因为您有这样的路线apps/:app_id/issues/:issues_id您需要在控制器中获取@app。

您可以使用以下命令检查可用路线:rake routes