Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 获取当前用户的记录_Ruby On Rails - Fatal编程技术网

Ruby on rails 获取当前用户的记录

Ruby on rails 获取当前用户的记录,ruby-on-rails,Ruby On Rails,我有3个控制器:站点、用户和会话。我已经完成了所有的身份验证设置,并且在用户登录后,我在应用程序控制器中设置了对象current_user。现在,我只想让用户看到他们的站点(站点模型有一个:“属于:用户”) 类站点控制器params[:id],:user_id=>current_user)?很抱歉,在我发布我的评论之前,您的评论不完全可见,请尝试运行rake db:migrate,我想,可能是您缺少迁移;-)要允许用户只编辑他们的网站,您可以尝试cancan或声明性授权。铁路司机:, class

我有3个控制器:站点、用户和会话。我已经完成了所有的身份验证设置,并且在用户登录后,我在应用程序控制器中设置了对象current_user。现在,我只想让用户看到他们的站点(站点模型有一个:“属于:用户”)

类站点控制器
如果需要更多信息(模型、整个控制器等),请告诉我,我会发布广告


谢谢

我不能很清楚地理解你的想法。但似乎你想要的是如下所示:

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