Ruby on rails 如何仅显示属于某个用户的项目(使用restful\u身份验证)?
我有一个包含用户及其文档的web应用程序。每个用户可以有许多文档: user.rb: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。您在用户类中设置了与文
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