2013-06-13 2 views
0

« méthode non définie MODEL_NAME » Array classe » selon http://guides.rubyonrails.org/getting_started.html, j'ai ci-dessous des modèles relationnels,rails field_for balises modèle associé à l'erreur:

class Tag < ActiveRecord::Base 
    belongs_to :post 
    attr_accessible :name 
end 


class Post < ActiveRecord::Base 
    attr_accessible :context, :title, :tags_attributes 

    validates :title, :presence => true 
    validates :context, :presence => true, :length => {:minimum => 5} 

    has_many :comments 
    has_many :tags 

    accepts_nested_attributes_for :tags, :allow_destroy => :true, 
    :reject_if => proc {|attrs| attrs.all? {|k,v| v.blank?} } 
end 

normalement sous le code pourrait bien fonctionner quand j'ai envoyé une modification demande, ces balises existantes sont répertoriées en tant qu'éléments modifiables sur la page.

<%= form_for(@post) do |post_form| %> 

    <%= post_form.fields_for :tags do |tag_form|%> 

    <div class="field"> 
    <%= tag_form.label :name, 'Tag:' %> 
    <%= tag_form.text_field :name %> 
    </div> 
    <% unless tag_form.object.nil? || tag_form.object.new_record? %> 
    <div class="field"> 
     <%= tag_form.label :_destroy, 'Remove:' %> 
     <%= tag_form.check_box :_destroy %> 
    </div> 
    <% end %> 
<% end %> 

mais maintenant, reportez-vous au-dessous du code d'instance sur http://guides.rubyonrails.org/form_helpers.html

<%= form_for @person, :url => { :action => "create" } do |person_form| %> 
    <%= person_form.text_field :name %> 
    <%= fields_for @person.contact_detail do |contact_details_form| %> 
    <%= contact_details_form.text_field :phone_number %> 
    <% end %> 
<% end %> 

je change la déclaration avec fields_for au-dessous le format, pourquoi il toujours toujours rapide méthode non définie de MODEL_NAME » Array: classe

<%= fields_for @post.tags do |tag_form|%> 
+0

pouvez-vous poster une erreur complète ici ??? – Salil

+0

si vous voulez dire la trace ou quelque chose, parce que le message d'erreur juste une phrase "méthode non définie' tags 'pour # ". Sinon, la trace est très longue – ryu

Répondre

1

enfin, je fais travailler avec la mise à jour ci-dessous

<% @post.tags.each do |tag| %> 
    <%= post_form.fields_for tags,tag do |tag_form|%> 
    <div class="field"> 
     <%= tag_form.label :name, 'Tag:' %> 
     <%= tag_form.text_field :name %> 
    </div> 
    <% unless tag_form.object.nil? || tag_form.object.new_record? %> 
     <div class="field"> 
     <%= tag_form.label :_destroy, 'Remove:' %> 
     <%= tag_form.check_box :_destroy %> 
     </div> 
    <% end %> 
    <% end %> 
<% end %> 
Questions connexes