2014-11-12 4 views
1

Немного поздно, так что, может быть, это тривиальный вопрос, когда я пропущу что-то простое. Но когда я нажимаю кнопку (с link_to) Я создал следующие добавляемый к моему URL:Rails Routing и link_to

%23<ActionView::Helpers::FormBuilder:0x3ef1fd8> 

Почему это, и как я могу это предотвратить? Опять же, прошу прощения, если это мелкий вопрос. Я могу опубликовать дополнительную информацию о маршрутах и ​​еще что-то, если это необходимо.

Спасибо!

Редактировать: дополнительная информация по запросу.

Вид:

<%= link_to "Index", welcome_path(f), :class => 'button' %> 

с е быть частью form_for цикла. Я думаю, что у меня неправильный параметр, но я не уверен.

Соответствующий маршрут:

get "index" => 'welcome#show', :as => 'index' 

Update:

Спасибо за помощь всем. Я закончил тем, что начал работать, плюризуя мой контроллер (я не знаю, почему у меня этого раньше не было) и вместо этого использовал welcome_url. Казалось, это трюк.

+2

Вы можете также разместить код вида, где у вас есть эта форма и кнопка? – Surya

+0

Нам нужно больше кода, чтобы видеть, что происходит. – karlingen

+0

Эй, ребята, я добавил дополнительную информацию. Еще раз спасибо. – Ryan

ответ

1

Заканчивать самый первый пример и пункт в Rails API docs for ActionView::Helpers::FormBuilder:

<%= form_for @person do |f| %> 
Name: <%= f.text_field :name %> 
Admin: <%= f.check_box :admin %> 
<% end %> 

Что это говорит, что f представляет проиллюстрированный объект FormBuilder, который вы передаете методу welcome_path в вашем link_to помощника.

Как правило, вы не будете смешивать #index и #show в своих маршрутах. В зависимости от того, что вы хотите использовать WelcomesController для, возможно, на самом деле хотите, чтобы направить ваш root_path в welcome_index:

get "welcome/show" => 'welcome#show', :as => 'welcome' 
root 'welcome#index' 

Вы должны запустить: $ rake routes в терминале, чтобы получить представление о том, просмотреть путь хелперов, которые вы можете использовать в ваше приложение.

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

<%= link_to "Show", welcome_path(@user.id), :class => 'button %> 
<%= link_to "Index", root_path, :class => 'button' %> 
+1

Это хорошее объяснение того, как все работает. Я все еще участвую в маршрутизации Rails, и это очень полезно. Благодаря! – Ryan