【发布时间】:2018-03-25 20:44:12
【问题描述】:
您好,我认为我是盲人,我没有在语法中找到错误
def update
@list = List.find_by(key: params[:id])
if (check_email_link(params[:expdate] && @list.update(wishlist_params))
flash[:notice] = t("update")
redirect_to (admin_list_url)
else
flash[:error] = t("not_active")
render 'edit'
end
end
expdate 包含一个日期时间戳,而 check_email_link 是一种检查邮件中链接的日期和时间的方法
存在三个语法错误
app/controllers/admin/lists_controller.rb:32: syntax error, unexpected keyword_else, expecting ')'
app/controllers/admin/lists_controller.rb:35: syntax error, unexpected keyword_end, expecting ')'
app/controllers/admin/lists_controller.rb:86: syntax error, unexpected keyword_end, expecting ')'
我是个白痴,或者我是个盲人。有人可以帮我解释一下错误吗?谢谢
【问题讨论】:
-
您在第三行缺少
check_email_link的右括号。 -
在您的 check_email_link 调用中,params[:expdate] 错过了结束
)。 -
在 ruby 中,您通常不会将
if语句中的子句用括号括起来,因此您实际上可以将它们排除在外 -
对于马里奥的评论,我相信惯例是在
if条件周围加上括号,当且仅当它也是一个赋值。 -
@amarradi - 如果你“接受”一个答案 - 然后你可以说这个问题已经“解决”了......请记住,如果你有不同的解决方案,自己回答问题总是可以的给给定的:)
标签: ruby-on-rails if-statement web model-view-controller