私はRuby on Railsを初めて使用し、サンプルのリンゴを作成しようとしましたが、この1つの部分で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
- 名前
- Eメール
- パスワード
製品
- ID
- 名前
- 説明
- ユーザーID
写真
- ID
- image_file_name
- image_content_type
- image_file_size
- image_updated_at
- 製品番号