あなたのビューでparams
にアクセスすることを避けるために、それはコントローラで処理する必要があります。
グローバル変数の代わりに、インスタンス変数を使用できます。それらはあなたのコントローラとあなたのビューの間で共有されます。代わりにeval
の、あなたが与えられたnum
の値を取得するためにHash#fetch
を使用することができ、その後
@titles = {
'1' = 'title one',
'2' = 'title two',
'3' = 'title three',
}
:代わりに、動的に生成された変数の
、あなたはハッシュを使用することができます。
あなたのコントローラ内でインスタンス変数にその値を割り当てることができます。
def index
@title = @titles.fetch(params[:num], 'default title')
end
インスタンス変数は、あなたの中に表示アクセスできること:
<h3><%= @title %></h3>
あなたはまたPage
を作成することができますモデルにtitle
と(ユニークな)num
という属性を付けてページの詳細を保存します。お使いのコントローラへの変更は非常に簡単になります:
def index
@page = Page.find_by(num: params[:num])
end
そして、あなたのビューで:
<h3><%= @page.title %></h3>
'public_send( "$のsubproject_title _#{のparams [:NUM]} _ 1")' –
@AndreyDeineko私に未定義のメソッドエラーを与えます。 – JustusP
グローバルではなくインスタンス変数を使用できますか? –