gpt4 book ai didi

ruby-on-rails - rails : Facebox link if condition is satisfied

转载 作者:数据小太阳 更新时间:2023-10-29 08:34:47 25 4
gpt4 key购买 nike

我想在满足特定条件的情况下单击元素时显示 facebox 链接。如果条件不满足,我不希望用户点击。我正在做这样的事情来实现它,这是非常难看的

<% if x == 5 %>
<a id="something" href="http://www.some_weird_link.com" rel="facebox">
<% end %>
<div>
<!-- Loads of HTML and erb code here which should be shown no matter what condition -->
</div>

<% if x == 5 %>
</a>
<% end %>

请注意,我必须放置一个 if 条件,以便 </a>当条件不满足时,不会出现在我的 HTML 中。这看起来很糟糕。你能建议我更好的方法吗?

link_to_if很有前途,但它希望我将链接显示文本放在恰好是一个大参数的参数中 <div>就我而言。

最佳答案

我尝试了几种不同的情况,这很有效(如果你传递选项 :if => false 将不会链接,如果你传递 :if => true 将创建链接,或者如果你不传递 if选项)

定义助手:

  def facebox( *args , &block )
if !args.last.is_a?(Hash) || args.last.fetch(:if,true)
link_to *args , &block
else
block.call
end
end

一旦你有了这个助手,任何时候你想使用你的 facebox 链接方法(你也可以用所有特殊的 facebox 参数来充实它——例如,那个 rel 可能会被移到助手中以清理提高你的看法)

然后你可以在你的 View 中这样做:

  <% facebox 'http://www.some_weird_link.com' , :id => 'something' , :rel => 'facebox' , :if => (x == 5) do %>
<div>
<!-- Loads of HTML and erb code here which should be shown no matter what condition -->
</div>
<% end %>

关于ruby-on-rails - rails : Facebox link if condition is satisfied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3131668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com