【问题标题】:controller into another controller in rails?控制器到rails中的另一个控制器?
【发布时间】:2016-04-22 20:12:46
【问题描述】:
所以我有这个 Ruby on Rails 课程,我必须为它创建一个非常简单的博客应用程序。但这让我很难过!
我有一个名为“文章”的模型,我可以通过导航到 /articles 来查看包含所有文章的列表。我按照 Rails 文档为它制作了一个控制器。
我的老师还希望我创建一个“管理”区域,所以我需要通过转到 /admin/articles 来访问相同的列表。
我该怎么做?
我知道这是一个非常愚蠢的问题,但我无法在任何地方找到答案。
感谢您的宝贵时间!
【问题讨论】:
标签:
ruby-on-rails
hyperlink
controller
【解决方案1】:
您需要为 /articles 和 /admin/articles
创建路由
routes.rb
get "/articles" => "articles#index"
命名空间:管理员做
获取 "/articles" => "articles#index"
结束
并创建 2 个控制器。
1)
class ArticlesController < ApplicationController
def index
@articles = current_user.articles
end
end
对于管理员,在文件夹 admins 下创建另一个控制器。
2)
class Admins::ArticlesController < Admins::BaseController
def index
@articles = Articles.all
end
end
这里继承 Basecontroller 以便更好地编码和处理具有不同命名空间的控制器。或者你也可以继承应用控制器。
还有一件事,请按照 Rails 标准命名约定创建具有单数名称的模型(如文章)和复数的控制器(如文章)。