这似乎是一个微不足道的问题,但是在设置了一个简单的标准rails方法之后,我想将多个参数传递给一个参数,如下所示:
def create
@comment = @commentable.comments.new(comment_params)
@comment.user = current_user
Notification.create!(action: "posted", actor: current_user,
recipient: ([@post.user, @comment.user]), notifiable: @comment)
if @comment.save
render json: "Commented successfully", status: 201
else
render json: @comment.errors, status: :unprocessable_entity
end
end
如果收件人刚刚收到@ post.user可以,但是,我想知道是否可以通过@ comment.user或此类声明中的其他任何变量
答案 0 :(得分:3)
如果您具有正确的has_many
类型关系,则可以执行以下操作:
Notification.create!(action: "posted", actor: current_user,
recipients: [ @post.user, @comment.user ], notifiable: @comment)
)
您只需在其中传递这些内容。如果Notification和User之间没有多对多关联,则需要创建多个记录:
[ @post.user, @comment.user ].each do |user|
Notification.create!(action: "posted", actor: current_user,
recipient: user, notifiable: @comment)
)
end
首选第一种方法,但需要在用户和通知之间建立适当的联接表。