对于订阅表单,我需要一个未映射到我的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执行此操作的正确方法是什么?
答案 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_key
或params[:user][:invitation_key]
。