2012-04-19 58 views
1

我有一个信用卡类,我想对各种属性使用simple_form f.input方法用于验证等,但我收到有关model_name的错误。有没有简单的方法来做到这一点?如何将simple_form与普通的Ruby类一起使用?

= 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

你需要符合API加载ActiveModel ...

有效:

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
+0

谢谢!我刚刚发现Railscast情节,并得到它的工作。但是如何持续?一直是错误的效果?我得看看那个。 – 2012-04-19 15:09:52

+0

@EricM。它似乎会影响表单中使用的HTTP动词:'false'产生'POST','true'产生'PATCH'。至少我至今还没有发现任何其他影响。 – 2015-05-26 15:53:28

相关问题