Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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 如何仅显示属于某个用户的项目(使用restful\u身份验证)?_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何仅显示属于某个用户的项目(使用restful\u身份验证)?

Ruby on rails 如何仅显示属于某个用户的项目(使用restful\u身份验证)?,ruby-on-rails,Ruby On Rails,我有一个包含用户及其文档的web应用程序。每个用户可以有许多文档: user.rb: has_many :documents document.rb: belongs_to :user 文档_controller.rb: def index @documents = Document.find(:all) end 我正在使用restful_认证插件。我的问题是:如何让控制器只显示属于每个用户的文档?现在它显示所有用户的所有文档 我使用的是最新版本的Rails。您在用户类中设置了与文

我有一个包含用户及其文档的web应用程序。每个用户可以有许多文档:

user.rb:

has_many :documents
document.rb:

belongs_to :user
文档_controller.rb:

def index
    @documents = Document.find(:all)
end
我正在使用restful_认证插件。我的问题是:如何让控制器只显示属于每个用户的文档?现在它显示所有用户的所有文档


我使用的是最新版本的Rails。

您在用户类中设置了与文档类的关系。这将自动向用户对象添加一个方法,该方法返回与特定用户相关的所有文档的列表:

def index
  @documents = @current_user.documents
end
有关其他自动添加的方法,请参阅。

查看关联联接模型部分中的rails API

但是,请注意,Restful身份验证不会控制访问,以限制用户仅使用自己的记录,特别是使用Restful路由。登录后,他们仍然可以通过在URL中输入值来查看其他用户的记录

为此,您可能需要查看以下内容:

def index
    @documents = Document.where(:user_id => current_user.id)
end
def index
    @documents = Document.where(:user_id => current_user.id)
end