1

Rails アプリに、すべてのビューで共有されるタブ ナビゲーション ページがあります。内部には、ユーザーが表示しているページに応じて変化する小さなテキスト領域があります。

現在、コントローラーに変数を追加し、次のようにレンダリング部分パスで使用することでこれを行っています。

class Myapp::WebsitesController < MyappController
  def set_up
    @page = 'websites/left_text_info'
  end 

そして、私の部分的に:

<%= render :partial => @page %>

これは機能しますが、物事を行うための最良の「ルビー」の方法とは思えません。誰でもこれを行うためのより良い方法についてアドバイスできますか?

ありがとう

4

1 に答える 1

2

ビューでヘルパー メソッドを直接使用controller_nameして、コントローラー部分をスキップできます。

<%= render "#{controller_name}/left_text_info" %>

または、変更されるのがテキストエリアのコンテンツだけである場合、コンテンツのみを返すヘルパー メソッドを定義するのがおそらく最善の方法です。そのため、非常に類似した複数の部分ファイルは必要ありません。

module ApplicationHelper
  def text_area_content
    case controller_name
    when "users"
      "content for users"
    when "articles"
      "content for articles"
    else
      "other content"
    end
  end
end
于 2012-06-26T09:09:22.657 に答える