1

クレジットカードクラスがあり、検証などで使用するためにさまざまな属性で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'
4

1 に答える 1

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
于 2012-04-19T15:03:23.567 に答える