【问题标题】:How can I add a new view to my Ruby on Rails application?如何向我的 Ruby on Rails 应用程序添加新视图?
【发布时间】:2022-01-05 21:09:09
【问题描述】:

向 Rails 应用程序添加新的view 的最佳位置是哪里? 我有三个主控制器,然后是Application 控制器。 I 文件夹在三个控制器的视图中。我想向我的应用程序添加一个主页视图,与其他视图分开。添加它的最佳位置在哪里?我应该在视图中创建一个新文件夹并在那里添加一个主页吗?我可以将它添加为application 控制器的一部分吗?

【问题讨论】:

  • 我建议使用 Rails 生成器来帮助设置它。这将对您有所帮助。例如rails g controller Pages home 之类的东西。这将创建一个带有home 操作的PagesController,并为您和所有这些设置视图模板。要提供一个新视图,您需要视图文件和控制器方法来处理它,但如果您是 Rails 新手,这是设置它的最快方法,直到您进一步了解配置。
  • 所以我正在考虑,但这是创建新视图的唯一方法吗?我不能使用应用程序控制器查看我的登录页面吗?我不想只为一页制作一个全新的控制器。这样做完全可以吗?
  • 您不会为此使用应用程序控制器。您可以将其添加到不同的控制器,或使用新的控制器。这取决于,这种方法与其他控制器无关吗?如果是这样,我会说它不仅没问题,而且还有望放入它自己的东西中,而不是仅仅添加到它不属于的控制器中。但这取决于我不知道的应用程序的结构

标签: ruby-on-rails model-view-controller


【解决方案1】:

如果您想让 Rails 始终如一地轻松工作,最好遵循 Rails 约定。因此,特定控制器的视图将进入app/views 目录,位于为特定控制器命名的子目录中。因此,pages_controller 的视图将进入 app/views/pages - 并且您将拥有一个为控制器中的每个相关操作命名的视图(例如,show.html.erb)。

通常,Rails 以“约定优于配置”的方式运行。因此,如果您遵循约定,您会发现一切正常且顺利。如果您尝试创建自己的约定,在某些时候它会咬住您并且事情将停止工作。

所以,基本问题是:哪个控制器将呈现您的新主页视图?我猜可能是static_pages_controller 或类似的。在这种情况下,视图将进入app/views/static_pages

如果你没有控制器,那么 Rails 根本不会渲染视图。

【讨论】:

  • 谢谢!我还能在静态页面中添加什么?如果我在应用程序中有用户并且每个用户都有一个“个人资料”页面,那么该页面是否仍然存在于用户的视图中?如果我想要一些不太特定于控制器的东西,比如帮助页面,我将它添加到静态页面视图中?
  • "Profile" 几乎可以肯定是一个用户视图,是的(它基本上显示来自用户表的信息)。帮助页面可能是静态的(不显示任何特定表中的数据),因此可能位于 static_pages 下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-08
  • 2015-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多