Маршруты не будут работать для помощника form_tag - PullRequest
1 голос
/ 17 января 2011

Я новичок в Rails 3, поэтому я должен делать что-то глупое, потому что почти все мои маршруты не работают с помощником form_tag. Я разбил его на простейший пример:

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

Маршруты рейка показывают маршрут:

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"}

Что я здесь не так делаю?

Ответы [ 2 ]

3 голосов
/ 17 января 2011

choose_devices - ваш названный маршрут. Rails автоматически генерирует два метода для каждого названного маршрута в качестве помощников маршрута. Они всегда называются в следующем соглашении:

named_route_path
named_route_url

Вы можете использовать любой (хотя путь обычно поощряется). Использование choose_devices_path вернет /account/devices/choose, тогда как choose_devices_url вернет что-то наподобие localhost:3333/account/devices/choose, или это может привести к ошибке, если вы не настроили свой хост должным образом в файлах конфигурации (это было давно, так как я явно использовал _url именованный помощник маршрута, поэтому не уверен в этом).

Вы также можете прочитать об этом, в частности, в руководстве по прокладке рельсов .

1 голос
/ 17 января 2011

Вам нужно добавить _path т.е..

choose_devices_path
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...