2014-11-21 2 views
0

У меня есть страница для предприятий, каждая из которых имеет форму. Из-за этой настройки это означает, что мне нужно 2 разных новых/создания действия. Я попытался определить это, используя следующий код:Не найдено проблем с формой

<%= form_for @lead, :url => { :action => :leadcreate } do |lead|%> 

Однако это не помогло. В файле маршрутов у меня также есть ресурсы, вызванные списками, а поскольку лидеры содержатся в контроллере списков, я ожидал, что это его охватит, но, видимо, нет.

Затем я получаю ошибку:

No route matches {:action=>"leadcreate", :controller=>"listings", :id=>"1" 

На

<%= form_for @lead, :url => { :action => :leadcreate } do |lead|%> 

Любая идея, что проблема здесь?

+0

Можете ли вы, пожалуйста, показать код вашего файла маршрутов, который относится к этому вопросу? –

+0

ресурсы: листинги –

+0

@StephRose - это контроллер, который имеет методы leadnew и leadcreate. –

ответ

0

Какой контроллер имеет это :leadcreate действие? Вы должны передать имя контроллера как парам для :url помощника

Должно быть: <%= form_for @lead, url: {controller: 'controller_name', action: :leadcreate } do |lead|%>

Другой вариант заключается в использовании сгенерированного маршрута: <%= form_for @lead,listings_lead_path do |lead|%> или любой другой путь, вызывается при запуске rake routes в терминале

+0

списки контроллеров, я пробовал <% = form_for @lead,: url => {: controller => "listings": action =>: leadcreate} do | lead |%> и получил синтаксическую ошибку, неожиданное keyword_ensure, ожидая ошибки $ end –

+0

@JayMcNaught проверить обновленный ответ снова, запятая пропущена между controllr и действием –

+0

Нет совпадений маршрутов {: action => "leadcreate" ,: controller => "listings",: id => "1"} –

0

в вашем файле маршрутов вы, вероятно, хотите что-то вроде этого.

resources :listings do 
    member do 
    post :leadcreate 
    end 
end 

, который даст вам leadcreate_listing_path использовать в вашей форме.

, но если листы всегда находятся под областями в списке, вы можете использовать вложенный ресурс.

resources :listings do 
    resources: :leads 
end 

, а затем создать контрольный кабель для их управления. В Интернете есть много информации о том, как это сделать. Затем вы можете использовать стандартные успокоительные действия/crud для их создания.

+0

Ваше первое предложение, теперь я получаю недостающую ошибку шаблона? Я просто хочу, чтобы он отправил форму, а затем перенаправил ее на ту же страницу. –

+0

Отсутствует список шаблонов/leadcreate, application/leadcreate с {: locale => [: en],: formats => [: html],: variantants => [],: handlers => [: erb,: builder,: raw ,: ruby,: coffee,: jbuilder]}. Поиск: * «C:/Users/Callum/Documents/directory/app/views» * «C: /RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/devise-3.2.4/app/views " –

+0

Просто убедитесь, что ваш лидер создает действие перенаправления. Если он дойдет до конца действия без перенаправления, он по умолчанию попытается отобразить шаблон с именем действия – Doon

Смежные вопросы