我是 Ruby on Rails 的新手,我一直在尝试创建一个示例苹果,但我已经被困在这一部分了WEEKS !我一直在向stackoverflow发送垃圾邮件,但我没有运气:(。我正在尝试创建一个还允许上传多张图片的产品页面。所以我有一个用户模型、一个产品模型和一个照片模型。当我提交填写照片和其他输入的表格我收到此错误。
NoMethodError in ProductsController#create
undefined method `photo' for #<Product:0x9078f74>
新产品页面
= form_for @product, :html => {:multipart => true} do |f|
%p
= f.label :description
= f.text_field :description
= fields_for @photo, :html => {:multipart => true} do |fp|
= fp.file_field :image
%p.button
= f.submit
产品控制器
def new
@product = Product.new
@photo = Photo.new
end
def create
@photo = current_user.photos.build(params[:photo])
@product = current_user.products.build(params[:product])
end
产品型号
attr_accessible :description, :name, :photo, :image
belongs_to :user
has_many :photos, dependent: :destroy
accepts_nested_attributes_for :photos
validates :user_id, presence: true
validates :description, presence: true
validates :photo, presence: true
end
照片模型
attr_accessible :image
belongs_to :product
validates_attachment :image, presence: true
用户模型
attr_accessible :email, :name, :password, :password_confirmation, :image, :photo
has_many :products, dependent: :destroy
has_many :photos, :through => :products
end
表
用户
- ID
- 姓名
- 电子邮件
- 密码
产品
- ID
- 姓名
- 描述
- 用户身份
照片
- ID
- 图像文件名
- 图像内容类型
- 图像文件大小
- image_updated_at
- product_id