Rails - ошибка stringify_key при попытке изменить значение - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть кнопка, которая изменяет логическое значение, чтобы деактивировать объект, а не удалять его.Это работает, однако, когда я пытаюсь применить стиль к нему, я получаю следующую ошибку:

undefined method `stringify_keys' for "/coins/1/flop":String

Я понимаю, что stringify_keys пытается преобразовать символы в строку, но я не уверен, как это применимо к этомуСитуация или как ее исправить.

<div class="coin-container__coin-header-container" id="coin-hdr">
  <img class="" src='<%= @img_url_ %>' />
  <h2><%= @coin.currency_name %></h2>
  <% coin_change_class = "coin-change" %>
  <% @percent_change_1h_ >= 0 ? coin_change_class += ' positive' : coin_change_class += ' negative' %>
  <p class='<%= coin_change_class %>'><%= @percent_change_1h_ %>%</p>

  <div class="coin-update-buttons">     
    <% if can? :update, @coin %>
        <%= link_to edit_coin_path(@coin), "data-turblinks" => "false" do %>
            <i class="fas fa-pencil-alt"></i>
        <% end %>
    <% end %>
    <% if can? :destroy, @coin %>
      <%= link_to (@coin.accepted ? true : false), flop_coin_path(@coin), data: { confirm: "Do you want to delete this coin?" } do %>
        <i class="far fa-trash-alt"></i>
        <% end %>
    <% end %>
  </div>

</div>

Метод флопа в моем контроллере монет выглядит следующим образом:

def flop
  coin = Coin.find(params[:id])
  coin.accepted = !coin.accepted
  coin.save
  redirect_to coin_path(coin)
end

Может кто-нибудь указать мне, куда я иду не так?здесь

1 Ответ

0 голосов
/ 28 сентября 2018

неопределенный метод `stringify_keys 'для" / coins / 1 / flop ": String

link_to(url, html_options = {}) do
  # name
end

Вы делаете это неправильно.Правильный способ применения стиля к link_to с именем и блоком приведен ниже.

<%= link_to flop_coin_path(@coin), data: { confirm: "Do you want to delete this coin?" } do %>
  (@coin.accepted ? true : false) <i class="far fa-trash-alt"></i>
<% end %>

Также странно отображать логическое значение в качестве имени дляlink_to.Я бы сделал это так вместо

<%= link_to flop_coin_path(@coin), data: { confirm: "Do you want to delete this coin?" } do %>
  (@coin.accepted ? "Activate" : "Deactivate") <i class="far fa-trash-alt"></i>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...