2012-05-05 5 views
7

サブスクリプションフォームでは、Userオブジェクトにマップされていないフィールドが必要です。Formtasticでモデルに関連しない入力を追加する方法

このフィールドは、コントローラの作成アクションの招待状に対してチェックされていますが、どこにも保存されず、このユーザオブジェクトとは関係のない招待コードをユーザに尋ねるためにのみ使用されます。

私が試した:

<%= 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でこれを行う正しい方法は何ですか?

答えて

3

:私はFormtastic固有のヘルパーでそれを行うための方法を見つけることができませんでした(実際、私はサインアップモデルを作成したいが、それは余談です):

class User 
    attr_accessor :invitation_key 
end 

次にチェック@user.invitation_keyparams[:user][:invitation_key]のいずれかにあなたのコントローラを変更します。

6

f.inputの代わりに、このようなことを行うことができます。メリンダの答えは結構ですが、余分な属性は、Userモデルに多少関連しているので、私はユーザーにアクセサを作成します

<li> 
    <%= label_tag 'Invitation Key' %> 
    <%= text_field_tag :invitation_key %> 
</li> 
関連する問題