Как добавить вход, не связанный с моделью, с помощью Formtastic

Для формы подписки мне нужно иметь поле, которое не сопоставлено с моим объектом User.

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

Я пытался :

<%= semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= f.input :invitation_key, :input_html => {:name => 'invitation_key', :id => 'invitation_key'} %>

Но это не работает.

Как правильно это сделать с Formtastic?


person Renaud Chaput    schedule 05.05.2012    source источник


Ответы (2)


Ответ Мелинды в порядке, но поскольку дополнительный атрибут в некоторой степени связан с моделью пользователя, я бы создал метод доступа для пользователя (на самом деле я бы создал модель регистрации, но это отступление):

class User
  attr_accessor :invitation_key
end

Затем измените свой контроллер, чтобы проверить @user.invitation_key или params[:user][:invitation_key].

person Justin French    schedule 06.06.2012

Вы можете просто сделать что-то подобное вместо f.input. Я не смог найти способ сделать это с помощью помощника, специфичного для Formtastic:

<li>
    <%= label_tag 'Invitation Key' %>
    <%= text_field_tag :invitation_key %>
</li>
person Melinda Weathers    schedule 17.05.2012