【发布时间】:2017-03-02 01:21:44
【问题描述】:
我有一个应用程序,可以在其中批准或拒绝周对象,这是在周控制器中完成的。我的周模型 belongs_to 用户。这是我在周控制器中所做的一个简短示例:
第一个块是为某些上下文提供的:
def approve
@user = current_user
if params[:commit] == "Approve selected weeks"
Week.where(id: params[:weeks_ids]).update_all(approved?: true)
flash[:success] = "Selected weeks were approved!"
#Send an email noting it was approved
@user.send_approved(current_user)
下面是拒绝的一半:
elsif params[:commit] == "Reject selected weeks"
user_week = Week.where(id: params[:weeks_ids])
user_week.update_all(approved?: false)
以上,周已完美更新。下面,我尝试从选定的周检索用户,以便向该用户发送电子邮件。
#get the user associated with the rejected week, send them an email.
user_email = User.find(id: user_week.user_id)
UserMailer.send_rejection(user_email).deliver
flash[:info] = "Selected weeks were Rejected."
end
redirect_to weeks_path
end
但是,当我尝试拒绝一周时,我收到以下错误:
undefined method `user_id' for <Week::ActiveRecord_Relation:0x007fdcac43e730>
这是由于未指定的用户对象造成的吗?
【问题讨论】:
-
注意-我在这里添加了预先存在的代码,并且对 MVC 或 rails 语法知之甚少。我整天都在查看堆栈溢出,但不知何故没有发现任何看起来相同的东西,但我肯定会弄错。
标签: ruby-on-rails ruby ruby-on-rails-5