可以在<%= image_tag内放置<%=标签吗?

Rub*_*rtz 1 ruby-on-rails

能否将<%=标签放在标签内<%=,如下所示?

如果没有,它是怎么做的?我已经在表格中找到了图像的名称,并希望在显示图像时在图像路径中使用它。

<%= image_tag("tools/<%= tool.logo %>", :size => "50x50", :class=> "img-circular") %>
Run Code Online (Sandbox Code Playgroud)

Ser*_*sev 5

正如demir所暗示的那样<%= %>,您位于,位于红宝石区,这意味着您可以/应该只编写常规的红宝石代码。他的回答解决了您眼前的问题,但是您可以通过将逻辑移到其他地方来回避它。以模型为例:

<%= image_tag(tool.logo_path, ...
Run Code Online (Sandbox Code Playgroud)

有人可能会认为表示逻辑不属于模型。在这种情况下,您可以使用某种风格的presenter模式

<%= image_tag(tool_presenter.logo_path, ...
Run Code Online (Sandbox Code Playgroud)

重点是,视图可能不是按片段组成资产路径的最佳位置。通常它们已经足够复杂了。