1

メソッド引数を介してパラメータを受け取るアクションがたくさんあります。

class App < E
  map '/'

  def read page
    @page = page
    # etc.
    render
  end

  def profile user
    @user = user
    # etc.
    render
  end
end

テンプレートをインスタンス変数に割り当てずに、テンプレートなどにアクセスするpageにはどうすればよいですか?user

4

2 に答える 2

2

ここには少なくとも2つのオプションがあります。

最も簡単な方法は、次を使用することaction_paramsです。

def read page
  # use action_params[:page] in templates
end

これはRuby1.9でのみ機能することに注意してください

Ruby1.8ではaction_params[0]

もう1つの方法は、パラメーターをコンテキスト変数として渡すことです。

def profile user
  render :user => user
  # in templates, user is available as #user getter
  # rather than @user instance variable
end
于 2012-12-06T16:21:10.603 に答える
1

ソースコードを見ると、ハッシュをレンダリング関数に渡すと、それらのキーがローカル変数としてビューに割り当てられます。何かのようなもの

render(:foo => "Bar")

アクションで、そしてビューであなたがすることができます

<%= foo %>

どちらがレンダリングされます

Bar
于 2012-12-06T16:22:46.563 に答える