我最近更新了我的路线,以便在我的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
我有一种感觉,因为我的路径和传递给他们的论据都搞砸了。
我在这里做错了什么?
答案 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
。