form_for用于普通对象

时间:2012-03-26 12:00:03

标签: ruby-on-rails

我可以使用form_for或者二进制对象吗?

控制器:

class AgendaState
    attr_accessor :base_date

    def initialize(date)
        @base_date = date
    end
end

class TodayController < ApplicationController
    def agenda(base_date = Date.today)
        @agenda = AgendaState.new(base_date)

查看:

<%= form_for(@agenda) do |f| %>
    <%= f.text_field :base_date %>
<% end %>

错误讯息:

undefined method `model_name' for AgendaState:Class

1 个答案:

答案 0 :(得分:5)

最简单的方法是使用ActiveModel扩展您的类

class AgendaState
 extend ActiveModel::Naming
 include ActiveModel::Conversion
 ...
end

由于评论中的讨论而更新。