【发布时间】:2016-05-23 01:09:15
【问题描述】:
我刚刚注意到
User.where("id = '309'")
在 IRB 控制台中工作。但是它在我的控制器中不起作用。我想知道为什么?
相比之下,User.find(309) 可以在 irb 控制台和我的控制器中使用。
在我的控制器中,
before_action :correct_user, only: [:edit, :update],
private
def correct_user
@user = User.where("id = '309'")
redirect_to(root_url) unless current_user?(@user)
end
end
这不起作用。视图网页无法打开且没有错误消息。
如果 User.find(309) 代替。它可以通过正确查看网页来工作。
【问题讨论】:
-
Ruby2.1.5,rails 4.2.0
-
找不到记录就不行了?还是因为它产生了错误?
-
相比之下,User.find(309) 在 irb 控制台和我的控制器中都有效。
-
向我们展示在控制器中运行的代码。您确定控制台和 Web 应用正在与同一个数据库通信吗?
-
请不要在 cmets 中发布代码。使用您要显示的代码更新您的问题。
标签: ruby ruby-on-rails-4 activerecord irb