试图找出一种更好的方式来分配评论它的相关模型。
我有以下课程:
class User < ActiveRecord::Base
has_many :reviews, dependent: :destroy
end
class Review < ActiveRecord::Base
belongs_to :user
belongs_to :restaurant
end
class Restaurant < ActiveRecord::Base
has_many :reviews, dependent: :destroy
end
非常简单的东西。评论必须有餐厅和用户。我的创建动作如下所示:
def create
@restaurant = Restaurant.find(params[:restaurant_id])
@review = @restaurant.reviews.build(review_params)
@review.user = current_user
if @review.save
redirect_to @restaurant
else
render 'new'
end
end
private
def review_params
params.require(:review).permit(:content)
end
目前,我为餐厅制作了评论,然后将评论的用户分配给当前用户。
这一切都运行正常,但有更清洁的方式来建立关联? 有没有办法在强制参数旁边为构建方法添加其他参数?
我查看了accepts_nested_attributes_for,但我无法让它工作。
谢谢!
答案 0 :(得分:0)
在表单中,您可以设置一个隐藏字段,其中包含您要分配的user_id
:
<%= f.hidden_field :user_id, value: @user.id %>
然后,将其添加到您的review_params
:
params.require(:review).permit(:content, :user_id)