【发布时间】:2013-10-22 13:28:52
【问题描述】:
我需要一个帮助器来生成包含在 <li> 中的链接,包括一个活动类。
如果没有支持块,这很容易:
def nav_item(*args, &block)
url = args[1]
clazz = 'active' if current_page?(url)
content_tag(:li, :class => clazz) do
link_to(*args)
end
end
但是像link_to 我希望我的助手支持定义内容的块。使用 link_to 我可以做到:
那么我如何在我的助手中支持相同的功能?
我需要做的就是将块传递给link_to。我目前的尝试
def nav_item(*args, &block)
url = if block_given?
args.first
else
args[1]
end
clazz = 'active' if current_page?(url)
content_tag(:li, :class => clazz) do
if block_given?
# What goes here?
else
link_to(*args)
end
end
end
【问题讨论】:
-
所以你的问题是当你将块作为变量时如何将块传递给函数,比如你的例子中的
block?
标签: ruby-on-rails ruby block helper link-to