Rails - Возможность включить / отключить ссылки в представлении? - PullRequest
3 голосов
/ 05 января 2011

У меня есть представление UserMailer, в котором есть несколько ссылок: например,

<%= link_to('XXXXXXXX Link Title', item_url(@item, :only_path => false), :style => 'color:#5196E3;text-decoration:underline;') %>

На странице есть несколько разных ссылок.Я хотел бы знать, есть ли способ глобально установить в представлении, чтобы включить или отключить ссылки.

Если включено, выше будет работать как обычно, если не блок выше просто показать текст(XXXXXXXX Заголовок ссылки) и не быть связанным?

Есть ли какие-либо идеи, кроме включения каждой ссылки в оператор IF?

Спасибо

Ответы [ 3 ]

15 голосов
/ 05 января 2011

Rails уже предоставляет link_to_if помощник ...

Итак, определите @some_boolean в классе контроллера или, если вы хотите истинно глобальное значение, тогда установите $some_boolean соответствующим образом.Затем используйте link_to_if:

<%= link_to_if(@some_boolean, "Link Title", <url etc..>) %>

Документация

6 голосов
/ 05 января 2011

вы можете создать вспомогательный метод, который принимает параметры вашей ссылки и возвращает желаемое значение.это означает, что вы будете реализовывать только один оператор IF (который будет в помощнике.)

отличный комментарий Шона Хилла: помощники должны быть в файлах помощника:)

ApplicationHelper:

helper_method :conditional_link

  def conditional_link(string,url)
    if true_condition
      return link_to string, url
    else 
      return string
  end

по вашему мнению:

<%= conditional_link string, url %>
0 голосов
/ 10 сентября 2013

если также хотите еще часть, если условие не истинно, используйте это

<%= link_to_if( some_boolean, "Link Title", <url etc..>) { link_to "link title", <url etc..>} %>

помните, что если вы не будете использовать блок кода, появится текст, и если вы хотите отобразить ссылку в другом стиле в случае false, используйте блок кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...