Skip to main content

undefined method `service_path' when adding best_in_place

Rails • Asked by Felix Pujols

I have an application that has customers and services. Customers has_many services and service belongs_to customer. In the customer show page, I can add or delete services. But I can not edit services, so I'm using best_in_place to do that. but is not working. It returns undefined method `service_path'. I will appreciate any help, I'm new in software.

here is the repository link if you want to check the whole app.

I restarted the server, but it keeps returning the same error.


   <% @customer.service.each do |service| %>
      <%= best_in_place service, :process  %>
   <% end %>


def show
    @customer = Customer.find params[:id]
    @service = @customer.service.order('created_at DESC').limit(4)

  def edit
    @customer = Customer.find params[:id]


  def edit
    @customer = Customer.find params[:id]

    @service =[:id])

  def update
    @service = Service.find(params[:id])

    respond_to do |format|
      if @service.update(service_params)
        format.html { redirect_to @service, notice: 'Service was successfully updated.' }
        format.json { render :show, status: :ok, location: @service }
        format.html { render :edit }
        format.json { render json: @service.errors, status: :unprocessable_entity }


resources :customers do
    resources :services

Based on your routes.rb, your path should be customer_service_path() as it's nested. Check in your cli/terminal rails routes to see all the routes available to you.

I don't know best_in_place, but I reckon you can change the path to "post/put" to.

Thank you, but still not working.

I did that:

<td><%= best_in_place customer_service_path(), :process %></td>

an it's giving me an error:

No route matches {:action=>"show", :controller=>"services", :id=>"2"}, missing required keys: [:customer_id]

The error says it all :)
missing required keys: [:customer_id] You need to add both your customer_id and in there too, otherwise does not know which customer or service object to update. Note: that this not specfic for the best_in_place plugin, but is general Rails stuff.

Login or Create An Account to join the conversation.

Subscribe to the newsletter

Join 24,647+ developers who get early access to new screencasts, articles, guides, updates, and more.

    By clicking this button, you agree to the GoRails Terms of Service and Privacy Policy.

    More of a social being? We're also on Twitter and YouTube.