[rails]モデルと紐付かないフォームを扱う

モデルと紐付かない要素をform_forで扱いたい。

まず、モデルクラスに下記をインクルードします。

  class User
    include ActiveModel::Model
  end

次に、アクセサを定義します。

  class User
    include ActiveModel::Model

    attr_accessor :name
  end

コントローラーでいつものようにインスタンスを作ります。

  @user = User.new

こうすると、viewで次のように扱えます。

  <% form_for @user do |f| %>
    <%= f.text_field :name %>
  <% end %>

バリデーションもできます。

  class User
    include ActiveModel::Model

    attr_accessor :name

    validates :name, presence: true
  end
Pocket

宮田真也

Webプログラマー。
1982年京都府城陽市生まれ。東京都練馬区在住。社会学系の大学・大学院を卒業後、会社員として約6年勤務。退職後、プログラミングを学び、畑違いのWebプログラマーとして独立し、現在に至る。