我还是 ruby 和 rails 的新手,并且正在寻找创建一个变量,以便我可以在视图模板中一遍又一遍地使用它。例如,我现在的代码是
<title>Home Page</title>
<h3>Welcome to my Home Page</h3>
现在我想把这个“主页”作为变量或符号,这样我就可以使用那个变量/符号,而不是一遍又一遍地输入字符串,怎么做?
谢谢
我还是 ruby 和 rails 的新手,并且正在寻找创建一个变量,以便我可以在视图模板中一遍又一遍地使用它。例如,我现在的代码是
<title>Home Page</title>
<h3>Welcome to my Home Page</h3>
现在我想把这个“主页”作为变量或符号,这样我就可以使用那个变量/符号,而不是一遍又一遍地输入字符串,怎么做?
谢谢
当我第一次阅读您的问题时,我以为您是在问这个,但我意识到这是不同的。
Michael Hartl 令人惊叹的Ruby-on-Rails 教程演示了我最喜欢的方法,即创建一个实例变量,该变量完全按照您想要的方式在布局中引用。
class ApplicationController < ActionController::Base
protect_from_forgery
attr_accessor :extra_title
...
这使得@extra_title
所有控制器都可以访问。现在在一个特定的控制器内:
class ThingsController < ApplicationController
def index
@extra_title = "| Things"
...
好的,那这一切是为了什么?哦,对了,我们想在布局中使用它:
<!DOCTYPE html>
<html>
<head>
<title>Best. App. Ever. <%= @extra_title %></title>
...
现在你正在使用 Rails。
您可以使用实例变量prefixed by @
,以便可以在整个视图中使用它。
例如:
控制器:
@my_home = "Home Page"
看法:
<title><%= @my_home %></title>
为此,您可以使用布局或部分布局。这里有一个很好的指南:http: //guides.rubyonrails.org/layouts_and_rendering.html
您可以将该内容放在文件 app/views/layout/application.html.erb 中,它将用作您的默认布局。
您可以做的另一件事是创建一个部分,因此您可以使用该内容创建一个像 /app/views/shared/_header.html.erb 这样的文件,然后您可以通过写入从任何视图呈现它
render partial: '/shared/header.html.erb'