2011-01-17 7 views
1

私はRails 3の初心者ですので、私のルートはほとんどすべてform_tagヘルパーで動作していないので、ここで何か愚かなことをする必要があります。私は、最も単純な例にそれを壊しました:form_tagヘルパーのルートは機能しません

choose_devices POST /account/devices/choose(.:format) 
{:action=>"choose", :controller=>"devices"} 

ページをロードしようとしたとき、私は取得していますエラーは次のとおりです:

undefined local variable or method `choose_devices' for 
#<#<Class:0x00000100d8e270>:0x00000100d7efa0> 

<%= form_tag(choose_devices) do %> 
<% end %> 

レーキルートはルートを示しています

私がテストするために様々なルートを試してみましたが、これだけで動作するようです:

user_session POST /users/sign_in(.:format) 
{:action=>"create", :controller=>"devise/sessions"} 

ここで何が間違っていますか?

答えて

3

choose_devicesは名前付きルートです。 Railsはルートヘルパーとして名前付きルートごとに2つのメソッドを自動的に生成します。これらの名前は、常に次のように指定されています。

named_route_path 
named_route_url 

どちらのパスも使用できます(通常はパスを使用することをお勧めします)。 choose_devices_pathを使用すると/account/devices/chooseが返されますが、choose_devices_urllocalhost:3333/account/devices/chooseのようなものを返します。あるいは、設定ファイルでホストを適切に設定しないと、実際にはエラーが出る可能性があります(あくまで_urlという名前のルートヘルパーを使用しています。部)。

rails routing guide.

1

_path ieを追加する必要があります。

choose_devices_path