J'essaie de suivre Ryan Bates screencast mais j'ai un message d'erreur. Je l'ai fait ce qui suit:Problème avec l'association polymorphe dans Rails
1) Créer la table
class CreateComments < ActiveRecord::Migration
def self.up
create_table :comments do |t|
t.references :commentable, :polymorphic => true
2) modèles de configuration
class Comment < ActiveRecord::Base
belongs_to :commentable, :polymorphic => true
class Product < ActiveRecord::Base
has_and_belongs_to_many :categories
has_many :comments, :as => :commentable
class Category < ActiveRecord::Base
has_and_belongs_to_many :products
has_many :comments, :as => :commentable
3) contrôleur de changement show d'action
class CategoriesController < ApplicationController
def show
@category = Category.find_by_permalink(params[:id])
@commentable = @category
@comment = Comment.new(:commentable => @category)
end
4) Ajouter un formulaire modèle vues/catégories/show.html.erb
<% form_for [@commentable, Comment.new] do |f| %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :content %><br />
<%= f.text_area :content %>
</p>
<p>
<%= f.submit 'Submit' %>
</p>
<% end %>
5) Après que je reçois un message d'erreur en accédant à/catégories/my-catégorie permalien
NoMethodError in Categories#show
undefined method `category_comments_path' for #<ActionView::Base:0x69a9254>
Pourriez-vous me aider à comprendre ce que je fait de mal? Dans le screencast original, Ryan accède aux commentaires par/categories/permalink/comments en utilisant des associations imbriquées, mais je n'en ai pas besoin. Je veux écrire des commentaires directement à partir de mes objets polymorphes. Merci
Sur la page screencast, Val a posté un lien vers le code démo a corrigé: 59. Val 25 août , 2009 at 10:02 J'ai corrigé tous les bugs et le code de travail que vous pouvez télécharger de www.rubyf.info/files/polimorphic_work0.zip – Andrei