使用RoR 2.3.8。
我允许用户使用回形针上传照片,但照片中没有所有权。这意味着,我根本不知道是谁上传了这些照片。
在这里,我想在照片模型user_id
中添加一个新列,每次用户上传图片时,他的ID都会自动包含在列中。
我该怎么做?谢谢!
答案 0 :(得分:1)
class User < ActiveRecord::Base
has_many :photos
end
class Photo < ActiveRecord::Base
belongs_to :user
end
在您的迁移文件中,在照片模型
中设置一个名为“user_id”的整数值的列然后你可以打电话
@user.photos
或
@photo.user
答案 1 :(得分:1)
有两个三种方法。
将新照片添加到用户的照片集中:
current_user.photos << Photo.new(params[:photo])
或者像这样:
current_user.photos.build(params[:photo])
或者将登录(当前)用户分配给新照片:
photo = Photo.new(params[:photo])
photo.user = current_user
答案 2 :(得分:1)
我会说:
在照片表中添加user_id
在照片模型中添加belongs_to :user
在您的用户模型中添加has_many :photos
在照片格式f.hidden_field :user_id, current_user
注意将user_id
设为attr_accessible
如果您担心用户破解html并为其他人添加照片,则应在控制器中合并params,而不是在表单中添加字段。
答案 3 :(得分:0)
如果您正在使用Devise gem - 只需将其添加到您的photo_controller:
def create
@photo.user = current_user
...
end