0

我基本上是在尝试保存我在模型中生成的密钥。这不是用户在表格中填写的内容。当我转到 /model/new 时,我不断收到错误消息

undefined method `presentation_url=' for #<Class:0x007fc3c7d8ca38>

这是我在模型中所做的总体思路。

class Product < ActiveRecord::Base
  attr_accessible :description, :name, :price, :pdf, :banner 
  self.presentation_url = "a generated url that is not coming from the form"
end

我已经为presentation_url 属性生成并运行了迁移,并检查了该列是否存在。

4

2 回答 2

2

该错误告诉您该类Product没有名为 的方法presenteation_url=。该方法应该存在于 class 的实例上Product,如果它由基于列名的 activerecord 提供的话。因此,您应该presentation_url=在某些实例方法中使用该方法,而不是在类级别或类方法中。

于 2013-05-25T20:31:19.690 回答
1

在模型中使用回调,如下所示:

class Product < ActiveRecord::Base
  before_save :presentation_url

  attr_accessible :description, :name, :price, :pdf, :banner 

  def default_presentation_url
    self.presentation_url ||= "a generated url that is not coming from the form"
  end
end
于 2013-05-25T20:42:37.317 回答