Rails, если синтаксис оператора - PullRequest
32 голосов
/ 15 июля 2011

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

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

Ответы [ 3 ]

81 голосов
/ 15 июля 2011

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

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

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

25 голосов
/ 15 июля 2011

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

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

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

<%= render 'form' if user_signed_in? %>
2 голосов
/ 15 июля 2011

попробуйте

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