2010-03-14 3 views
1

У меня есть приложение, которое теперь доступно только для приглашения. Проблема в том, что я не могу заставить систему приглашения работать. :(Несколько форм на одной странице

На моей корневой странице есть форма входа в систему (которая работает отлично), и я пытаюсь добавить форму запроса на той же странице. Я начал делать это, поместив форму для приглашения (приглашение) . ActiveRecord) внутри частично, в папке «Views» для «InviteRequest» приложение, безусловно, называя это частичное, но я получаю следующее сообщение об ошибке:

NoMethodError in User_sessions#new 

Showing app/views/invite_request/_new.html.erb where line #2 raised: 

undefined method `invite_requests_path' for #<ActionView::Base:0x25b3248> 
Extracted source (around line #2): 

1: <% @invite_request = InviteRequest.new() %> 
2: <% form_for @invite_request do |ir| %> 
3: <%= ir.label :email %> 
4: <%= ir.text_field :email %> 
5: <% end %> 

Я также прочитал через «несколько моделей в раздел «Форма» моей надежной копии "Agile Web Development with Rails", о том, что возможно это сделать с тегом «fieldset», но не уверен, что это правильный подход.

Thx.

+0

В случае, если это релевантно, этот частичный вызов вызывается из контрольной панели «user_session», «новой» страницы действий (то есть страницы входа). Итак, у меня также может быть какая-то проблема. – jefflunt

+0

* Я мог бы также * просто поместить функцию запроса приглашения на свою страницу, что было бы проще, но было бы неплохо, если бы не был лишний щелчок. :) – jefflunt

ответ

2

Ваш form_for @invite_request пытается выяснить, где должны быть опубликованы результаты из формы. Он делает это, просматривая маршруты и находя тот, который соответствует ресурсу и действию. В вашем случае я предполагаю, что вы не создали маршруты для InviteRequest. Вам необходимо настроить маршрутизацию для InviteRequest или указать URL-адрес, который будет опубликован в form_for.

form_for @invite_request, :url => { :controller => 'application', :action => 'request_invite' } do |form| 
    ... 
+0

Yikes, это было так просто. Спасибо! У меня было «map.resources invite_request» в файле routes.rb, и я перезапустил mongrel после изменения, прежде чем я разместил вопрос. Но, очевидно, я отсутствовал в картографии маршрутизации/URL. Итак, я использовал указанный «: url => ...», который вы предложили. Раскачать. Благодарю. – jefflunt

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