2

domainpost.rb で私はこれを持っています:

class Domainpost < ActiveRecord::Base
  attr_accessible :content,  :additiona, :registerdate, :expiredate, :registerin, :price 

  belongs_to :user
  before_save { |domainpost| domainpost.content = content.downcase }

  before_validation :pricecheck

  validates :price, allow_blank: false, presence: true

  default_scope order: 'domainposts.created_at DESC'

  def pricecheck
    if  price.blank?
    price = 'no price'
  end
end

そして、保存した後に投稿の価格が空白のままになっていると機能しません。何が間違っているのでしょうか。

4

2 に答える 2

4

priceインスタンスの属性を設定する代わりにDomainpost、ローカル変数を設定するため、機能しません。代わりに、次のことを行う必要があります。

def pricecheck
  self.price = 'no price' if price.blank?
end
于 2013-07-02T09:10:41.693 に答える
1

@Merek Lipka と @muttonlamb の回答として、これらのアプローチを試すことができますがdefault value、データベース側で定義されていることをお勧めします

価格フィールドの移行のように、これを行うだけです

t.[price_data_type],:price,:default => "Your Default value"

さて、これでチェックインモデルが処理されると思います

于 2013-07-02T09:13:46.517 に答える