Мой link_to говорит, что нет пути, но я создал путь в route.rb - Нет совпадений маршрутов - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь добавить функцию закладки в свое приложение. Я создал маршруты в файле rout.rb и добавил ссылку на мою страницу показа, чтобы пользователь мог сохранить прическу. Когда я нажимаю на него, это дает мне следующую ошибку. ActionController::UrlGenerationError in Hairstyles#show и,

No route matches {:action=>"update", :controller=>"saved_hairstyles", :id=>"21"}, missing required keys: [:hairstyle_id]

Я слежу за этим видео , что здорово до этого момента.

Вот мой репо для простоты понимания.

saved_hairstyles_controller.rb (определено только для метода обновления):

class SavedHairstylesController < ApplicationController
  def update 
  saved_hairstyle = SavedHairstyle.where(hairstyle: 
  Hairstyle.find(params[:hairstyle]), user: current_user)
  if saved_hairstyle == []
    SavedHairstyle.create(hairstyle: Hairstlye.find(params[:hairstyle]), user: 
    current_user)
    @saved_hairstyle._exists = true
  else
    saved_hairstyle.destroy_all
    @saved_hairstyle_exists = false
  end
  respond_to do |format|
    format.html {}
    format.js {}
  end
  end
end

Моя ссылка в файле views>hairstyles>show.html.erb, это та, которая дает мне ошибку,

 <%= link_to 'save hairstyle', hairstyle_saved_hairstyle_path(hairstyle: @hairstyle) %>

routes.rb выглядит следующим образом,

Rails.application.routes.draw do
  root to: 'pages#home'
  devise_for :users
  resources :hairstyles do
    member do
      put "like", to: "hairstyles#upvote"
      put "dislike", to: "hairstyles#downvote"
    end
    resources :comments, only: :create
    resources :saved_hairstyles, only: [:update]
  end
  resources :saved_hairstyles, only: :destroy
  resources :comments, only: :destroy
  resources :hairdressers
end

Дополнение к вопросу: я также проверил `` грабли маршрутов | grep save_hairstyles` и у меня есть следующие маршруты:

hairstyle_saved_hairstyle PATCH  /hairstyles/:hairstyle_id/saved_hairstyles/:id(.:format)                                 saved_hairstyles#update
                          PUT    /hairstyles/:hairstyle_id/saved_hairstyles/:id(.:format)                                 saved_hairstyles#update
          saved_hairstyle DELETE /saved_hairstyles/:id(.:format)                                                          saved_hairstyles#destroy```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...