erb ファイルの js スクリプト内から関数 (ajaxReq(val);) を呼び出そうとしています。@years_true == true の場合にのみクリック イベントで関数を呼び出したい。クリック イベント内で <% puts @years_true %> を実行すると、正しい値が返されます。ただし、Ruby if ステートメントでラップすると (@years_true が true と評価された場合にのみ関数が呼び出されるように) 、@years_true が true の場合でも、クリック時に関数が呼び出されることはありません。関連すると思われるすべてのコードを次に示します。
ユーザーコントローラー:
@years_true = !@user.years.find_by_year(params[:age]).nil?
_showjs.html.erb:
$(".year").click(function(event) {
event.preventDefault();
var val = $(this).text();
$.get( "/<% if !@user.nil?%><%= @user.name %><% end %>/" + val, function(data) {
});
<% if @years_true %>
ajaxReq(val);
<% end %>
history.replaceState({}, '', "/" + gon.username + '/' + val );
return false;
});