11

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

此字段仅用于向用户询问邀请代码,该代码在控制器的创建操作中与邀请列表进行检查,但未保存在任何地方,并且与此用户对象无关。

我试过 :

<%= 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 执行此操作的正确方法是什么?

4

2 回答 2

8

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

<li>
    <%= label_tag 'Invitation Key' %>
    <%= text_field_tag :invitation_key %>
</li>
于 2012-05-17T21:25:59.873 回答
6

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

class User
  attr_accessor :invitation_key
end

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

于 2012-06-06T11:14:12.947 回答