Image_tag с помощником Link_to в условии троичного оператора - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь получить образец последних 3 продуктов на продажу в представлении первой страницы моего магазина и сделать их кликабельными, чтобы перенаправить пользователя на их страницу взаимного показа.Это контроллер:

  def home
  @productsample = Product.where(:ordinable => true).last(3).shuffle
  end

Это мой взгляд:

<h2>Latest product on sell!</h2>
<% @productsample.each do |x| %>
<div>
  <%= x.picture? ? link_to image_tag(x.picture_url, :alt => x.name), product_path(x) : image_tag("https://via.placeholder.com/250x250") %>
</div>

по какой-то причине я не понимаю, я получаю эту ошибку синтаксиса:

/home/luis/code/levisn1/development/ezmarkt/app/views/pages/home.html.erb:9: syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '(' x.picture? ? link_to image_tag(x.picture_url, :alt => x.name ^ /home/luis/code/levisn1/development/ezmarkt/app/views/pages/home.html.erb:9: syntax error, unexpected ',', expecting ')' .picture_url, :alt => x.name), root_path : image_tag("https: ^

с этим кодом, вместо этого, он работает идеально, конечно:

<%= link_to image_tag(x.picture_url), product_path(x) %>

Какой правильный синтаксис, чтобы мой первый код работал?Спасибо

1 Ответ

0 голосов
/ 10 октября 2018

Кажется, вы пытаетесь использовать троичный оператор, чтобы решить, что отображать.Попробуйте:

  <%= x.picture? ? (link_to image_tag(x.picture_url, :alt => x.name), root_path) : image_tag("https://via.placeholder.com/250x250") %>

Я думаю, что запятая между аргументами для метода link_to вызывает синтаксическую ошибку, поэтому теперь, когда метод link_to с его аргументами находится внутри круглых скобок, он не должен нарушать синтаксисдля троичного оператора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...