Ruby on rails 如何将块传递给方法调用?
我需要一个助手来生成一个包含活动类的Ruby on rails 如何将块传递给方法调用?,ruby-on-rails,ruby,block,helper,link-to,Ruby On Rails,Ruby,Block,Helper,Link To,我需要一个助手来生成一个包含活动类的包装的链接 没有支撑块,这很容易: 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\u to一样,我希望我的助手支持用于定义内容的块。有了链接,
包装的链接
没有支撑块,这很容易:
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\u 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
您只需将块作为最后一个参数传递给
link\u 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
link_to(*args, &block)
else
link_to(*args)
end
end
end
您只需将块作为最后一个参数传递给
link\u 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
link_to(*args, &block)
else
link_to(*args)
end
end
end
那么你的问题是当你把块作为变量时,如何把块传递给函数,比如你的例子中的
block
?那么你的问题是当你把块作为变量时,如何把块传递给函数,比如你的例子中的block
?我试过了,但是没有用,原来这是因为其他地方的一个错误。谢谢。我试过了,但没用,原来是因为别的地方出了错。谢谢