Rails - 拥有完全两种不同设计的最佳实践
Rails - Best practice to have completely two different designs
我对 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 项目是否更好?或者有可能在一个项目中全部完成吗?
您可以在一个 rails 应用程序中完成。为您的营销网站使用 static_pages controller
,并使用设计进行用户身份验证。
通过设计,您可以将 before_action :authenticate_user!
用于仪表板控制器,以将访问权限限制为仅登录用户。
您可能还想阅读 Michael Hartls 关于构建 Ruby-On-Rails 应用程序的书。
https://www.railstutorial.org
看看 Mackenzie Child 的 12 in 12 挑战赛。
https://www.youtube.com/watch?v=7-1HCWbu7iU&list=PL23ZvcdS3XPLNdRYB_QyomQsShx59tpc-
application.html.erb
文件被视为 "layout" 文件,<%= yield %>
是每个控制器可以将页面内容插入整体布局的地方。
只需在 application.html.erb
旁边添加另一个文件,您就可以拥有两个不同的版本,名称类似于 website.html.erb
。现在,在您拥有的任何控制器中,您只需将 layout 'website'
添加到顶部,该控制器中的所有控制器操作都将使用 website
布局。
使用它,您可以做一些巧妙的事情:
- 有两种布局,一种用于您的应用程序(钱包应用程序本身),一种用于您的网站(public 不需要用户帐户的页面)。每个布局可以包含不同的 CSS 和 JS
- 创建一个名为
static_pages_controller
的控制器,它适用于 "static" 页面(不会因用户而有很大变化的页面)。对于网站上您想要的每个页面,只需添加控制器操作和适当的模板。告诉这个控制器像上面那样使用你的 website
模板。
- 因为你的静态页面正在通过 Rails,你甚至可以检查用户是否登录,并根据需要更改你的内容,所以不用说 "Log In",你可以说"My Account"
您可以在 official documentation 上阅读有关布局的更多信息。
我对 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 项目是否更好?或者有可能在一个项目中全部完成吗?
您可以在一个 rails 应用程序中完成。为您的营销网站使用 static_pages controller
,并使用设计进行用户身份验证。
通过设计,您可以将 before_action :authenticate_user!
用于仪表板控制器,以将访问权限限制为仅登录用户。
您可能还想阅读 Michael Hartls 关于构建 Ruby-On-Rails 应用程序的书。 https://www.railstutorial.org
看看 Mackenzie Child 的 12 in 12 挑战赛。 https://www.youtube.com/watch?v=7-1HCWbu7iU&list=PL23ZvcdS3XPLNdRYB_QyomQsShx59tpc-
application.html.erb
文件被视为 "layout" 文件,<%= yield %>
是每个控制器可以将页面内容插入整体布局的地方。
只需在 application.html.erb
旁边添加另一个文件,您就可以拥有两个不同的版本,名称类似于 website.html.erb
。现在,在您拥有的任何控制器中,您只需将 layout 'website'
添加到顶部,该控制器中的所有控制器操作都将使用 website
布局。
使用它,您可以做一些巧妙的事情:
- 有两种布局,一种用于您的应用程序(钱包应用程序本身),一种用于您的网站(public 不需要用户帐户的页面)。每个布局可以包含不同的 CSS 和 JS
- 创建一个名为
static_pages_controller
的控制器,它适用于 "static" 页面(不会因用户而有很大变化的页面)。对于网站上您想要的每个页面,只需添加控制器操作和适当的模板。告诉这个控制器像上面那样使用你的website
模板。 - 因为你的静态页面正在通过 Rails,你甚至可以检查用户是否登录,并根据需要更改你的内容,所以不用说 "Log In",你可以说"My Account"
您可以在 official documentation 上阅读有关布局的更多信息。