Синтаксис инструкции Rails if

Я написал следующий ERB и получаю синтаксическую ошибку в вопросительном знаке. Эта вспомогательная функция от devise в настоящее время оценивается как ложная. Что я пропустил?

<%= if user_signed_in? %>
<%= render 'form' %>
<%= end %>

person cjm2671    schedule 15.07.2011    source источник
comment
Обратите внимание, что '?' а также '!' являются допустимыми символами в именах методов.   -  person    schedule 15.07.2011


Ответы (3)


Попробуй это :

<% if user_signed_in? %>
  <%= render 'form' %>
<% end %>

Если вы сделаете ‹%= ... %>, он попытается вывести то, что вы поместили между тегами. Но если вы делаете ‹% ... %>, то вывод не обрабатывается, а оценивается только код. Если это не работает, то, вероятно, что-то не так с вашим user_signed_in? вспомогательный метод.

person SteenhouwerD    schedule 15.07.2011

<%= попытается вывести ваш помощник user_signed_in?, поэтому попробуйте:

<% if user_signed_in? %>
  <%= render 'form' %>
<% end %>

или даже лучше (и менее запутанно):

<%= render 'form' if user_signed_in? %>
person Mario Uher    schedule 15.07.2011
comment
Спасибо за описание разницы между <%= и <% - person lislis; 28.04.2016

попробуй это

<% if user_signed_in? %>
    <%= render 'form' %>
<% end %>
person Mahesh    schedule 15.07.2011