Rails - 能够启用/禁用视图上的链接?

时间:2011-01-05 04:42:24

标签: ruby-on-rails ruby-on-rails-3

我有一个UserMailer View,它有几个link_to,如下所示:

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

该页面有几个不同的链接。我想知道是否有一种方法可以在视图中进行全局设置以启用或禁用链接。

如果启用,上面会像正常一样运行,如果不是上面的块只显示文本(XXXXXXXX链接标题)而没有链接?

除了在IF语句中包装每个link_to之外的任何想法吗?

由于

3 个答案:

答案 0 :(得分:15)

Rails已经提供了link_to_if帮助......

因此,在控制器类中定义@some_boolean,或者如果你想要一个真正的全局,那么适当地设置$some_boolean。然后使用link_to_if

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

Documentation

答案 1 :(得分:6)

您可以创建一个辅助方法来获取链接参数并返回所需的值。这意味着你只会实现一个IF语句。(它将在帮助器中。)

Sean Hill的好评:助手应该在帮助文件中:)

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 %>

答案 2 :(得分:0)

如果条件不正确,如果还想要其他部分则使用此

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

请记住,如果您不使用代码块,则会出现文本,如果您想在其他样式中呈现错误,则使用代码块。