Ruby on rails 获取当前用户的记录
我有3个控制器:站点、用户和会话。我已经完成了所有的身份验证设置,并且在用户登录后,我在应用程序控制器中设置了对象current_user。现在,我只想让用户看到他们的站点(站点模型有一个:“属于:用户”)Ruby on rails 获取当前用户的记录,ruby-on-rails,Ruby On Rails,我有3个控制器:站点、用户和会话。我已经完成了所有的身份验证设置,并且在用户登录后,我在应用程序控制器中设置了对象current_user。现在,我只想让用户看到他们的站点(站点模型有一个:“属于:用户”) 类站点控制器params[:id],:user_id=>current_user)?很抱歉,在我发布我的评论之前,您的评论不完全可见,请尝试运行rake db:migrate,我想,可能是您缺少迁移;-)要允许用户只编辑他们的网站,您可以尝试cancan或声明性授权。铁路司机:, class
类站点控制器
如果需要更多信息(模型、整个控制器等),请告诉我,我会发布广告
谢谢 我不能很清楚地理解你的想法。但似乎你想要的是如下所示:
def show
@site = Site.find(params[:id])
# check if the site belong to current user
redirect_to some_user_default_path if @sites.user != @current_user
# respond to ... etc
end
希望能有所帮助。假设您的模型具有如下定义的关联:
class Site < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :sites
end
获取与此用户关联的所有站点看起来不错!我会做一个网站,但我也不认为你的方法有任何错误。对于show/edit等,您正在查找id,并为用户id添加where子句。好的,我的主要问题是如何只允许用户编辑他们的站点。我试图添加:def edit@site=current_user.sites.find(params[:id])end,但我得到:Mysql::Error:Unknown column'published_at'in'order子句:选择'si etcchange to site.where(:id=>params[:id],:user_id=>current_user)?很抱歉,在我发布我的评论之前,您的评论不完全可见,请尝试运行rake db:migrate,我想,可能是您缺少迁移;-)要允许用户只编辑他们的网站,您可以尝试cancan或声明性授权。铁路司机:,
class Site < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :sites
end
current_user.sites