futureProgrammer25
futureProgrammer25

Reputation: 71

Nested Routing Error in Rails

I keep getting this error and don't get how to fix it. Please help.

I want to have a "complete order" button on my sales history page which creates a Post action to begin the transfer

orders/sales.html.erb

<% @orders.each do |order| %>
    <tr>
      <td class="center"><%= order.profile.user.first_name %></td>
      <td class="center"><%= number_to_currency(order.profile.price) %></td>
      <td class="center"><%= order.buyer.first_name %></td>
      <td class="center"><%= order.created_at.strftime("%B %-d, %Y") %></td>
      <td class="center"><%= button_to "complete order", complete_purchase_profile_order_path(@order, @profile) %></td>
    </tr>
  <% end %>

routes.rb

resources :profiles do
  resources :orders do
    post 'complete_purchase', on: :member
  end
end

post 'complete_purchase/:id' => "orders#complete_purchase"

orders_controller.rb

def complete_purchase
  @order = Order.find(params[:id])
end

rake routes

complete_purchase_profile_order POST     /profiles/:profile_id/orders/:id/complete_purchase(.:format) orders#complete_purchase

POST     /complete_purchase/:id(.:format)                             orders#complete_purchase

Upvotes: 0

Views: 35

Answers (1)

Radek
Radek

Reputation: 202

Well, first of all I think you have mistake in your link "complete_purchase_profile_order_path(@order, @profile)". it should be "complete_purchase_profile_order_path(@profile, @order)", next I wonder if your orders_controller has a "profiles" namespace. Why you specify two "complete_purchase" paths in your routes file? As Cyzanfar says, please paste complete error message and more details about namespaces or file tree.

Upvotes: 1

Related Questions