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

问题描述 投票:0回答: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'} %>

但是不起作用。

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

ruby-on-rails-3 formtastic
3个回答
9
投票

你可以做这样的事情而不是f.input。我找不到使用 Formtastic 特定帮助程序来完成此操作的方法:

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

7
投票

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

class User
  attr_accessor :invitation_key
end

然后修改您的控制器以选中

@user.invitation_key
params[:user][:invitation_key]


0
投票

这个问题已经在这里得到解答:如何使用 Formtastic 添加与模型无关的输入

要添加与模型无关的输入,请手动将值传递给输入。

© www.soinside.com 2019 - 2024. All rights reserved.