我是一个Rails 3新手所以我必须做一些愚蠢的事情,因为几乎所有的路线都没有使用form_tag助手。我把它分解为最简单的例子:
<%= form_tag(choose_devices) do %>
<% end %>
Rake路线显示路线:
choose_devices POST /account/devices/choose(.:format)
{:action=>"choose", :controller=>"devices"}
我在尝试加载页面时遇到的错误是:
undefined local variable or method `choose_devices' for
#<#<Class:0x00000100d8e270>:0x00000100d7efa0>
我尝试了各种路线进行测试,它似乎只适用于这个:
user_session POST /users/sign_in(.:format)
{:action=>"create", :controller=>"devise/sessions"}
我在这里做错了什么?
答案 0 :(得分:3)
choose_devices
是您指定的路线。 Rails会自动为每个命名路由生成两个方法作为路由助手。它们总是按以下约定命名:
named_route_path
named_route_url
您可以使用其中任何一种(尽管通常鼓励使用路径)。使用choose_devices_path
将返回/account/devices/choose
而choose_devices_url
将返回localhost:3333/account/devices/choose
之类的内容,或者如果您未在配置文件中正确设置主机,则实际上可能会出错(它很长自从我明确使用_url
命名的路由助手以来的时间,因此不确定该部分。)
您还可以在rails routing guide.
专门阅读这些内容答案 1 :(得分:1)
您需要附加_path ie。
choose_devices_path