也许我做错了什么,但这是我的问题:
这构建了一个新的餐厅对象,其中user_id设置为
我想要的是通过
因为这样做有点违背使用.build的初衷。
@restaurant = current_user.restaurants.build(params[:restaurant])
这构建了一个新的餐厅对象,其中user_id设置为
current_user.id
。这只在您在餐厅模型中设置attr_accessible :user_id
时才有效。如果没有设置,将会出现。ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes:
user_id
我想要的是通过
.build
定义user_id
,但同时我不希望使用attr_accessible :user_id
,因为这样有可能会将该记录的 user_id 设置为其他用户的id,这是不好的!我原以为外键被排除在Mass Assignment Security之外,并且如果你通过关联的 .build
或 .create
方法创建一个新对象时会强制执行。有什么建议吗?我不想退回到...@restaurant = current_user.restaurants.build(params[:restaurant])
@restaurant.user = current_user
因为这样做有点违背使用.build的初衷。
id
吗? - apneadiving