如何将simple_form与普通的Ruby类一起使用?

时间:2012-04-19 14:56:00

标签: ruby-on-rails simple-form

我有一个信用卡类,我想在各种属性上使用simple_form f.input方法以用于验证等,但我收到有关model_name的错误。有一种简单的方法可以做到这一点吗?

= simple_form_for @credit_card, url: join_network_path do |f|
    .payment-errors
  = f.input :card_number
  = f.input :cvc
  = f.input :expiry_month
  = f.input :expiry_year
  = f.submit 'Join Network'

1 个答案:

答案 0 :(得分:4)

您需要符合ActiveModel API ...

有效:

class CreditCard
  include ActiveModel::Validations
  include ActiveModel::Conversion
  extend ActiveModel::Naming

  def initialize(attributes = {})
    attributes.each do |name, value|
      send("#{name}=", value)
    end
  end

  def persisted?
    false
  end
end

一些背景知识:

  1. http://yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-activerecord/
  2. http://railscasts.com/episodes/219-active-model