ruby-on-rails 向link_to helper添加参数时出现语法错误

ngynwnxp  于 2023-01-03  发布在  Ruby
关注(0)|答案(2)|浏览(157)

尝试将参数添加到link_to时,出现"语法错误,意外的" end ",预期输入结束"

    • 超文本标记语言**
<%= link_to  "showdeals"(id: "test"), target: :_blank  do %>
                <img src="/assets/images/1.png">
<% end%>

以下不带参数的代码可以正常工作

<%= link_to  "showdeals", target: :_blank  do %>
                <img src="/assets/images/1.png">
<% end%>

[编辑]下面的答案由马克斯工作和解释是超级有帮助的我的理解。我创建了一个命名路径为我的路线使用如下::showdeals。然后将下面的代码

<%= link_to showdeals_path(id: "test"), target: :_blank  do %>
                <img src="https://turtlevacay.s3.us-west-1.amazonaws.com/destinations/<%= value[5] %>.png">
              <% end%>
tcomlyy6

tcomlyy61#

这与link_to甚至Rails都没有关系。
在Ruby中,在字面量(字符串、数组、散列)后面跟(在语法上是无效的。

irb(main):001:0> "foo"(bar: 2)
/home/max/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.4.2/lib/irb/workspace.rb:119:in `eval': (irb):1: syntax error, unexpected '(', expecting end-of-input (SyntaxError)
"foo"(bar: 2)
 ^

也许你想调用一个路径助手:

<%= link_to  "showdeals", deal_path(id: "test"), target: :_blank  do %>
  <img src="/assets/images/1.png">
<% end %>

或者将哈希传递给多态路由助手:

<%= link_to  "showdeals", { action: :show, id: "test" }, target: :_blank  do %>
  <img src="/assets/images/1.png">
<% end %>
jslywgbw

jslywgbw2#

第二个参数应该是要链接的URL。请尝试使用链接

<%= link_to "showdeals", "my/link/goes/here", target: :_blank  do %>
   <img src="/assets/images/1.png">
<% end%>

或者理想情况下,您会有一个资源丰富的链接助手:

<%= link_to "showdeals", model_name_path(id: 1), target: :_blank  do %>
   <img src="/assets/images/1.png">
<% end%>

相关问题