0

次のフォーム宣言があります。

<%= semantic_form_for @contrat_line, 
    :url => url_for(:controller =>"/backend/orders/#{@contrat.id}/contrat_lines", 
        :action =>"create") do |f| %>

次のルートをヒットしたい:

POST    /backend/orders/:order_id/contrat_lines(.:format)   backend/contrat_lines#create

しかし、フォームを表示したいときに(使用する前であっても)、次のエラーが発生します。

No route matches {:controller=>"backend/orders/23/contrat_lines", :action=>"create"}

このルートは存在すると思いますが、なぜ存在しないと言っているのですか?

4

2 に答える 2

1

routes.rb コード

match "/backend/orders/:order_id/contrat_lines" => "orders#contrat_lines", :as => "contrat_lines"

次に、コードを表示します

<%= semantic_form_for @contrat_line, 
    :url => contrat_lines_url(:order_id => @contrat.id), 
        :action =>"create") do |f| %>
于 2013-01-14T11:28:42.467 に答える
0

salil のおかげで、次のフォームを考案しました。

backend_order_contrat_lines_url(:order_id => @contrat.id), :action =>"create" do |f| %>

そして、それらのルートで動作します:

namespace :backend do
    resources :orders do
      resources :contrat_lines
    end
end

どうもありがとうございます。必要に応じて、回答を編集して承認済みとして設定できます。

于 2013-01-14T11:54:24.170 に答える