Ruby on rails 当在ERB之外使用时,Rails的link_是否只接受其块中的一个参数?

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的输出

当我在ERB中这样做时,它按预期工作,给了我一个环绕图像和一些文本的标签

<%= 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