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

它不起作用,因为您设置了一个局部变量,而不是设置实例的属性priceDomainpost相反,您应该这样做:

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 回答