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

AnA*_*ice 3 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;') %>
Run Code Online (Sandbox Code Playgroud)

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

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

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

谢谢

Zab*_*bba 15

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

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

<%= link_to_if(@some_boolean, "Link Title", <url etc..>) %>
Run Code Online (Sandbox Code Playgroud)

文档


dda*_*yan 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
Run Code Online (Sandbox Code Playgroud)

在你看来:

<%= conditional_link string, url %>
Run Code Online (Sandbox Code Playgroud)

  • 我在答案中添加了一个例子 (2认同)
  • 我相信助手属于助手模块,而不是应用程序控制器.否则,这是一个很好的解决方案. (2认同)