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

Ren*_*put 8 formtastic ruby-on-rails-3

对于订阅表单,我需要有一个未映射到我的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'} %>
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

使用Formtastic进行此操作的正确方法是什么?

Mel*_*ers 6

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

<li>
    <%= label_tag 'Invitation Key' %>
    <%= text_field_tag :invitation_key %>
</li>
Run Code Online (Sandbox Code Playgroud)


Jus*_*nch 5

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

class User
  attr_accessor :invitation_key
end
Run Code Online (Sandbox Code Playgroud)

然后将您的控制器修改为 check@user.invitation_keyparams[:user][:invitation_key]