"Catégories" ,: URL => ""}, touches requises manquantes: [: URL] - Retrouvez les réponses et les commentaires concernant cette question" />
0
votes

Aucun itinéraire correspondant {: action => "Afficher" ,: contrôleur => "Catégories" ,: URL => ""}, touches requises manquantes: [: URL]

Je suis un peu nouveau dans les rails. Donc, je suis tryna fait un clone craigslist. Jusqu'à présent, j'ai mis en place toutes les catégories et les sous-catégories. Je suis venu sur cette erreur lorsque j'ai essayé de référencer mes liens d'URL afin que cela puisse être comme cette Craigslist-clone / C / Communauté / Activités / 3 Où "communauté" est la catégorie mère et "activités" étant la sous-catégorie et donc "3 «Être le post à laquelle.

Maintenant, je peux cliquer sur chaque catégorie mère d'erreur moins. La seule fois où je reçois une erreur est lorsque je clique sur une sous-catégorie et que l'erreur est la suivante: p> xxx pré>

Mes catégories_Controller: p>

  create_table "categories", force: :cascade do |t|
    t.string "name"
    t.string "url"
    t.datetime "created_at", precision: 6, null: false
    t.datetime "updated_at", precision: 6, null: false
    t.integer "parent_id"
  end


0 commentaires

3 Réponses :


0
votes

Un de vous Sous-catégorie code> semble avoir une URL vierge.

<% category.subcategories.limit(10).each do |subcategory| %>
  <% next if subcategory.url.blank? %>
  <div class= "subcat"><%= link_to subcategory.name, show_category_path(subcategory.url) %></div>
<% end %> 


2 commentaires

Maintenant, après avoir collé ce bloc de code, je ne peux sembler voir des sous-catégories dans ma page d'accueil. Je ne vois que les catégories des parents @valles


J'ai attaché la catégorieModel et la table de catégories dans ma question



1
votes

Vous avez défini un itinéraire personnalisé comme celui-ci: xxx pré>

Par conséquent, vous devez transmettre explicitement une touche code> URL code> de la méthode de route, comme ceci: P >

category GET     /c/:url(.:format)    categories#show


3 commentaires

J'ai donc explicitement passé la clé URL à la méthode de la route, mais je ne peux toujours pas sembler cliquer sur l'erreur sur l'une des sous-catégories. Je suis frappé par une erreur disant aucun match d'itinéraire [get] "/ c" Je veux que mon URL soit comme ça lorsque je clique sur une sous-catégorie: "/ Communauté / Activités / 3 'Ai-je besoin Pour générer un nouvel itinéraire?


@Hathammaryanez-vous l'erreur car votre sous-catégorie.url == nil ? Vous n'avez partagé ni votre code ni vos données, alors je devine vraiment que ce qui pourrait être l'erreur.


Si vous voulez un itinéraire différent (potentiellement avec un comportement différent?) Pour les URL de sous-catégorie, vous devez définir cela comme un itinéraire distinct dans config / routes.rb .



0
votes

Ainsi, j'ai également rencontré ce type de problème avant et que vous souhaiterez peut-être modifier votre itinéraire code> de ressource code> avec une option code>: chemin code> et cela pourrait aider.

devise_for :accounts
  resources :posts
  resources :categories, path: "c", except:[:show] do
   get "/:url" => "categories#show", as: :show_category
  end

  post "message/send" => "public#send_enquiry_to_user", as: :send_enquiry
  get "/scams" => "public#scams", as: :scams
  get "/terms" => "public#terms", as: :terms
  get "/safety" => "public#safety", as: :safety
  get "/faqs" => "public#faqs", as: :faqs
   devise_scope :account do
     get "/accounts/sign_out" => "devise/sessions#destroy"
   end
  root to: "public#home"
end


0 commentaires