11

サブスクリプション フォームの場合、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 でこれを行う正しい方法は何ですか?

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

次に、コントローラを check@user.invitation_keyまたはのいずれかに変更しますparams[:user][:invitation_key]

于 2012-06-06T11:14:12.947 に答える