0

ルート.rb:

resources :shops

shop_controller.rb:

def new
    @shop=Shop.new
end

new.html.erb:

<%= form_for(@shop) do |f| %>
....
<% end %>

エラー: メソッド `shops_path' が定義されていません:

<%= form_for(@shop) do |f| %>

問題は、ルート ファイルで既にショップ リソースを指定していることです。なぜまだこの種のエラーが発生するのですか?

どんな助けでも感謝します、ありがとう

4

3 に答える 3

1

rake routes出力に次の行があることを確認してください。

   shops GET    /shops(.:format   {:action=>"index", :controller=>"shops"}
         POST   /shops(.:format)  {:action=>"create", :controller=>"shops"}

また

   shops POST   /shops(.:format)   {:action=>"create", :controller=>"shops"}

それらが存在しない場合は、routes.rbfor possible with_options、またはデフォルトの url ヘルパーを生成しないようにscope影響を与える可能性のあるその他のスコープを注意深く調べてください。resources :shops

于 2012-09-04T09:37:38.790 に答える
1

Rails の命名規則により、ShopsControllernotを使用する必要があります。ShopController

于 2012-09-04T08:28:34.917 に答える
0

フォームタグでメソッドを指定していないので、GETリクエストとして行われていると思います。メソッドをウルフォームに追加してみてください

<%= form_for(@shop), :method => :post do |f| %>
于 2012-09-04T10:05:52.223 に答える