私はまだルビーとレールに不慣れで、ビューテンプレートで何度も使用できるように変数を作成しようとしています。たとえば、現在の私のコードは
<title>Home Page</title>
<h3>Welcome to my Home Page</h3>
この「ホームページ」を変数またはシンボルとして作成したいので、文字列を何度も入力するのではなく、その変数/シンボルを使用できます。
ありがとう
私はまだルビーとレールに不慣れで、ビューテンプレートで何度も使用できるように変数を作成しようとしています。たとえば、現在の私のコードは
<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'