我对this example提出了类似的问题。我是一个新手,已经阅读了几个小时如何得到这个答案,但还没有得到答案,非常感谢你的帮助!我按照Kikito的回答设置了以下模型:用户,照片,地点,Photo_Relationships。我的路线文件包含:
resources :users
resources :locations do
resources :photos
end
resources :photo_relationships
我可以将照片保存到我的应用程序中的正确位置,但我无法通过Photo_Relationships模型将多个用户(特别是照片的创建者)分配给照片。
class CreatePhotoRelationshipsTable < ActiveRecord::Migration
def change
create_table :photo_relationships do |t|
t.integer :photo_id
t.integer :user_id
t.integer :role_id
t.timestamps
end
照片控制器
def create
@location = Location.find(params[:location_id])
@photo = @location.photos.new(params[:photo])
@photo.create_photo_relationship(@photo, current_user, 0)
if @photo.save
flash[:notice] = "Successfully added your photo"
redirect_to [@mountain, @photo]
else
render :action => 'new'
end
end
Photo_Relationships Controller
def create
@relationship = photo_relationships.new(params[:photo][:location])
@photo.create_photo_relationship()
end
我当前的错误是未定义的方法`photo_relationship'。无论有什么帮助或指导,我都非常感激。
答案 0 :(得分:0)
班级名称为PhotoRelationship
而不是photo_relationships
。
您的控制器行应为:
@relationship = PhotoRelationship.new(params[:photo][:mountain])