我是Rails的新手。
在创建一个网站,其中包含贵公司的实际网站,描述您的产品以及更多信息,但您还需要一个用户面板,以便他可以管理他的内容。
例如加密钱包网站,您拥有实际网站,解释所有内容,显示信息等,并且您的交易面板与网站的设计完全不同。
在Rails中,您拥有构建整个网站的application.html.erb
文件:
<!DOCTYPE html>
<html>
<head>
<title></title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<%= yield %>
</body>
</html>
yield 在哪里呈现用户正在浏览的当前视图。
如何使用该结构完全管理两种不同的设计?为用户面板创建一个全新的rails项目是一种更好的做法吗?或者可以在一个项目中完成所有工作?
答案 0 :(得分:2)
application.html.erb
文件被认为是&#34;布局&#34;文件,<%= yield %>
是每个控制器可以将页面内容插入整体布局的地方。
只需在application.html.erb
旁边添加另一个文件,即website.html.erb
,就可以有两个不同版本的内容。现在,在您拥有的任何控制器中,您只需添加到顶部layout 'website'
,该控制器中的所有控制器操作都将使用website
布局。
使用它,你可以做一些巧妙的事情:
static_pages_controller
的控制器,用于&#34;静态&#34;页面(基于用户不会发生很大变化的页面)。对于网站上您想要的每个页面,只需添加控制器操作和相应的模板即可。告诉此控制器使用上述website
模板。您可以在official documentation上了解有关布局的更多信息。
答案 1 :(得分:-1)
您可以在一个rails应用程序中执行此操作。为您的营销网站使用static_pages controller
,并使用设计进行用户身份验证。
通过设计,您可以将before_action :authenticate_user!
用于仪表板控制器,以限制仅对登录用户的访问。
您也可以阅读有关构建Ruby-On-Rails应用程序的Michael Hartls Book。 https://www.railstutorial.org
并看看Mackenzie Child的12次挑战中的12次。 https://www.youtube.com/watch?v=7-1HCWbu7iU&list=PL23ZvcdS3XPLNdRYB_QyomQsShx59tpc-