如何使用Formtastic添加与模型无关的输入

时间:2012-05-05 21:46:31

标签: ruby-on-rails-3 formtastic

对于订阅表单,我需要一个未映射到我的User对象的字段。

此字段仅用于向用户询问邀请代码,该代码是根据控制器的创建操作中的邀请列表进行检查,但未保存在任何位置,且与此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执行此操作的正确方法是什么?

2 个答案:

答案 0 :(得分:6)

你可以做这样的事情,而不是f.input。我找不到使用Formtastic特定助手的方法:

<li>
    <%= label_tag 'Invitation Key' %>
    <%= text_field_tag :invitation_key %>
</li>

答案 1 :(得分:4)

Melinda的答案很好,但由于额外属性与User模型有些相关,我会在User上创建一个访问者(实际上,我会创建一个Signup模型,但这是一个题外话):

class User
  attr_accessor :invitation_key
end

然后修改您的控制器以检查@user.invitation_keyparams[:user][:invitation_key]