我正面临这个问题我坚持使用Rails 3.2和ruby 2.1
我正在使用Log.v("xxxx","event definition size: "+eventDefinition.size());
和ActiveAdmin
将模型添加到我的管理区域。
我添加了这样的产品型号:
Devise
它在我的管理区域中创建了新菜单,这是正常的。
但是当我尝试保存新产品时,它会抛出此错误:
rails g active_admin:resource Product
这是我的NoMethodError at /admin/products
undefined method `email' for #<Product:0xbc177fc>
型号:
Product.rb
我评论了class Product < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
#attr_accessible :email, :password, :password_confirmation, :remember_me
belongs_to :category
has_many :line_items
has_many :orders, through: :line_items
validates_presence_of :category_id, :name, :price_cents
#attr_accessible :avatar
#has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
#validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/
attr_accessor :price
attr_accessible :category_id, :description, :image, :name, :price_cents, :upc_code, :price, :taxable
def price
price_cents/100.0 if price_cents
end
def price= price
self.price_cents = (price.to_f*100).round
end
end
行,但我仍然收到此错误,有任何想法吗?
这是我的email
:
Gemfile
答案 0 :(得分:1)
undefined method `email' for #<Product:0xbc177fc>
错误意味着,它在email
对象上调用product
方法但无法找到它。要使email
方法适用于product
对象,您必须在:email
模型中添加attr_accessor
到Product
列表。
将email
添加到您的Product
型号'attr_accessor
列表中:
attr_accessor :price, :email
此外,如果您想要更新:email
属性,那么您还需要将:email
添加到attr_accessible
列表中:
attr_accessible :category_id, :description, :image, :name, :price_cents, :upc_code, :price, :taxable, :email