没有将Symbol隐式转换为Hash

时间:2014-06-10 21:39:07

标签: ruby-on-rails ruby-on-rails-4

我最近更新了我的路线,以便在我的show和copy_order操作中为token传递params[:id]。但是,在我的索引中,我有以下视图正在创建错误:

ActionView::Template::Error (no implicit conversion of Symbol into Hash):
<td><%= link_to("#{order.merchant.name} - #{pluralize(order.item_count, 'Item')}", order_path(order))%></td>

_order.html.erb(显示部分)

<tr>
  <td><%= order.format_order_time(order.to_local_timezone(order.created_at)) %></td>
  <td><%= link_to("#{order.merchant.name} - #{pluralize(order.item_count, 'Item')}", order_path(order.token))%></td>
  <td><%= number_to_currency(order.total_cost) %></td>
  <td>
    <% if order.cart_users.count == 1 %>
      <%= form_tag copy_order_order_path(order), method: :post do |f| %>
        <%= button_tag(type: 'submit', class: 'btn btn-primary') do %>
          Add Order To Cart
        <% end %>
      <% end %>
    <% else %>
      Shared Order
    <% end %>
  </td>
</tr>

的routes.rb

resources :orders, only: [:index]
resources :orders, only: [:show, :copy_order], params: :token do
  post 'copy_order', to: 'orders#copy_order', on: :member
end

我有一种感觉,因为我的路径和传递给他们的论据都搞砸了。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

Failboat。错误发生在我的路线上。

resources :orders, only: [:show, :copy_order], params: :token do
  post 'copy_order', to: 'orders#copy_order', on: :member
end

而不是params: :token,它应该是param: :token