2011-12-18 5 views
0

いくつかのレールキャスト(this one in particular)の外見から、私にとっては起こらない "* _path"変数の自動生成があるようです。このレールキャストでは、edit_mutliple_products_pathが自動的に生成されるようです(私は通常、その単語を使用するのが好きではありません)。私は、同じ手順を辿ると同様のパスにアクセスしようとすると、私はこの取得:それは古いレールからだように見える与えチュートリアルでは、レール3のパスを自動生成しますか?

undefined local variable or method `edit_multiple_distributions_workflows_path' for #<#<Class:0x132b18a68>:0x132af3290> 
+0

"rake routes"はあなたのパスをリストに表示しますか? – Rahul

答えて

1

これはレール2.X.ですこのルートはroutes.rbをに以下を追加取得するために、レール3に変更したルートをレール:


resources :products do 
    collection do 
    post 'edit_multiple' 
    put 'update_multiple' 
    end 
end 

あなたは

edit_multiple_products_url 
edit_multiple_products_path 
update_multiple_products_url 
update_multiple_products_path 

の代わりedit_multiple_distributions_workflow_pathと、このパスにアクセスすることができます。 Btwあなたはどこからこの道を手に入れましたか?私は鉄道でそれを見ませんでした。

+0

ええ、 "distributions_workflows"は自分のプロジェクトからです。 – Ramy

+0

のおかげで、 '* _url'と' * _path'の違いを簡単に説明できますか? – Ramy

+1

www.amazon.comであるとします。products_pathは商品を返しますが、products_urlはwww.amazon.com/productsを返します。基本的に* _urlはホストの先頭にあるパスを返します。* _pathはパスのみを返します。 – daniel

1

を、これはパス・メソッドを生成するラインであります:

レール3に
map.resources :products, :collection => { :edit_multiple => :post, :update_multiple => :put } 

、あなたはここでドキュメントにその使用状況を見ることができます:http://guides.rubyonrails.org/routing.html#resource-routing-the-rails-default

+0

私はルーティングに関するより高いレベルを使用することができます。しかし、方向性のおかげで。非常に役に立ちます。 – Ramy