0

私はレールとルビーの初心者です。私はレールのいくつかの慣習にとても混乱しています〜

私はこのような方法を書きました:

def show_session_counter?
  if session[:counter] && session[:counter] > 4
  end
end

...そして、次のようにapplication.html.erbでメソッドを使用したい:

<% if show_session_counter? %>
      <li><a href="#"><%= pluralize session[:counter], "time" %></a></li>
<% end %>

まず、メソッドをapplication.html.erbで使うと思ったので、application.controller.rbに入れてみました。通常の方法と私的な方法として入れてみました。どちらも機能しません。

次に、メソッドを application_helper.rb に配置すると、機能します。

私の質問は、なぜ最初の方法がうまくいかないのですか? ここに「レール規約」はありますか?

どうもありがとう!

4

1 に答える 1

1

コントローラー内にメソッドを配置し、それをビューで使用したい場合は、それを として宣言する必要がありますhelper_method

helper_method :show_session_counter?

def show_session_counter?
  if session[:counter] && session[:counter] > 4
  end
end
于 2013-01-12T07:46:04.277 に答える