为什么我的link_to image_tag在Rails应用程序中出现语法错误?

时间:2018-06-20 10:01:32

标签: ruby-on-rails

我有一个图像和一个链接,它们分别工作,但是当我尝试将它们组合时却没有。我尝试了link_ toimage_tag的许多排列都无济于事。

它们分别工作正常:

<%= image_tag 'functional-med.png', class:"nutricion" %>
<%= link_to 'functional med', 'https://www.ifm.org/' %>

但是当我尝试:

 <%= link_to 'image_tag 'functional-med.png', class:"nutricion"', 'https://www.ifm.org/' %>

我收到错误消息:语法错误,意外的tIDENTIFIER,期待')'

删除单引号会出现错误:语法错误,意外的')',期望=>

 <%= link_to image_tag 'functional-med.png', class:"nutricion", 'https://www.ifm.org/' %>

我尝试在image_tag的内部和周围添加方括号,但始终出现语法错误。 我收到的另一个错误,但不明白的是: 语法错误,意外的keyword_ensure,预期为')'

我在任何地方都没有使用关键字“确保”。我以为我正确地遵循了ruby api http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

我在这里做什么错了?

5 个答案:

答案 0 :(得分:2)

使用此:

<%= link_to image_tag('functional-med.png', class:"nutricion"), 'https://www.ifm.org/' %>

无需在image_tag之前添加括号

答案 1 :(得分:2)

只需将一个块传递到link_to

<%= link_to 'https://www.ifm.org/' do %>
  <%= image_tag 'functional-med.png', class:"nutricion" %>
<% end %>

答案 2 :(得分:1)

我今天正在处理类似

要混合使用两个助手,只需尝试

componentDidMount() {
  fetch("https://reqres.in/api/users?page=3")
    .then(data => { return data.json() })
    .then(datum => {
      const results = datum.data.map(x => {
        return {
          slug: x.id,
          name: x.first_name + ' ' + x.last_name
        }
      })
      this.setState({ client: result });
    });
}

答案 3 :(得分:0)

以下应该可以工作

<%= link_to image_tag("create.png"), 'http://www.google.com' %>

带有图像标记的常规link_to到控制器动作

    <%= link_to image_tag("create.png"), {action: 'action_name', controller: 'controller_name'} %>

您可以添加class / id属性

<%= link_to image_tag("create.png"), {action: 'action_name', controller: 'controller_name'}, class: 'some-class' %>

答案 4 :(得分:-1)

尝试一下:

<%= link_to image_tag('functional-med.png', class: 'nutricion'), 'https://www.ifm.org/' %>