Ruby on rails 当在ERB之外使用时,Rails的link_是否只接受其块中的一个参数?
当我在ERB中这样做时,它按预期工作,给了我一个环绕图像和一些文本的标签Ruby on rails 当在ERB之外使用时,Rails的link_是否只接受其块中的一个参数?,ruby-on-rails,ruby,erb,Ruby On Rails,Ruby,Erb,当我在ERB中这样做时,它按预期工作,给了我一个环绕图像和一些文本的标签 <%= link_to(...) do %> <img src="..." /> text <% end %> 看看,他们只给出了一个在ERB中使用link_to的示例,因此,假设在方法中使用link_to不起作用,并且不能接受两个参数,这是否明智呢?继我的评论之后: 之所以会发生这种行为,是因为Ruby如何处理块,以及Rails如何处理ActionController的输出
<%= link_to(...) do %>
<img src="..." />
text
<% end %>
看看,他们只给出了一个在ERB中使用link_to的示例,因此,假设在方法中使用link_to不起作用,并且不能接受两个参数,这是否明智呢?继我的评论之后: 之所以会发生这种行为,是因为Ruby如何处理块,以及Rails如何处理ActionController的输出 这里的诀窍是使用方便的dandy concat 假设传递给link_的块只是另一个方法,它会返回一些对象/值。在本例中,返回文本对象
但是,因为您希望同时输出图像标记和文本,所以需要将它们一起传递到输出。我认为这是预期的行为,因为这就是块的读取方式。不过,您应该能够使用concat将助手中的图像标记和文本结合起来;
def build_link
link_to(...) do
image_tag(...)
text
end
end
def build_link
link_to("#") do
concat image_tag("http://placehold.it/300x300")
concat "hello world"
end
end