我有一个按钮,它可以更改布尔值以停用对象而不是删除对象。它可以工作,但是当我尝试对其应用样式时,出现以下错误:
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>
我的Coin控制器中的flop方法如下:
def flop
coin = Coin.find(params[:id])
coin.accepted = !coin.accepted
coin.save
redirect_to coin_path(coin)
end
有人可以指出我在这里出问题的方向吗?
答案 0 :(得分:0)
“ / coins / 1 / flop”的未定义方法'stringify_keys':字符串
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 %>