2015-06-11 3 views
0

Я хочу сделать условный link_to, который отображается только в том случае, если пользователь вошел в систему как администратор. Так что я сделал это:Link_to_if - текст все еще присутствует

Контроллер Применение

def confirm_admin 
if session[:role] == "admin" 
    @isAdmin = true 
else 
    flash[:notice] = "Vous n'avez pas les droits pour accéder à cette page." 
    redirect_to root_path 
    return false 
end 
end 

Посмотреть

<%= link_to_if is_admin, 'Editer l\'idée', edit_idee_path(@idee), :class => "editer custom-button" %> 

Ссылка исчезла, но текст все еще присутствует, у вас есть какие-либо идеи, почему?

ответ

1

link_to_if только делает текст без ссылки; он удаляет ссылку из текста, а не сам текст.

То, что вы пытаетесь сделать, вы можете достичь его через следующий код:

<% if is_admin %> 
    <%= link_to 'Editer l\'idée', edit_idee_path(@idee), :class => "editer custom-button" %> 
<% end %> 
<%# Now, it will remove both: link as well as text. %> 
+1

Да, я знал, что я мог бы сделать это с помощью <%, если is_admin%>, но я думал, что весь текст исчезнет, ​​спасибо в любом случае –

+0

Вас! –

+0

Если вы считаете, что ответ действительно, и вам помогли, вы можете его принять. –

0

Лучший способ сделать это, чтобы добавить пустой блок в конце заявления link_to_if, это будет отображать текст, когда условие is true и не отображает его, когда условное значение false.

E.g.

flash[:notice]= "Some text that will always show. 
#{view_context.link_to_if(user.exists?, 
'A hyperlink that will show based on conditional', 
user_path)**{}**}" 
Смежные вопросы