2010-07-16 36 views
1

我有两个类,EventLivingGroupLivingGroup has_many Events所以我做了如下补充我_form.html.erb为LivingGrouprails找不到子窗体的销毁方法

<div id='event_children'> 
    <% f.fields_for :events do |event_form| %> 
    <%= render :partial => 'event', :locals => { :f => event_form } %> 
    <% end %> 
</div> 

<p> 
    <%= add_child_link 'Add Event', 'event', f %> 
</p> 

,其中包括以下部分_event.html.erb的多个副本:

<div class="child"> 
    <p> 
    Event <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    </p> 
    <p> 
    Event <%= f.label :image_url %><br /> 
    <%= f.text_field :image_url %> 
    </p> 
    <p> 
    Event <%= f.label :description %><br /> 
    <%= f.text_area :description %> 
    </p> 
    <p> 
    Event <%= f.label :start_time %><br /> 
    <%= f.datetime_select :start_time %> 
    </p> 
    <p> 
    Event <%= f.label :end_time %><br /> 
    <%= f.datetime_select :end_time %> 
    </p> 
    <p> 
    <%= f.hidden_field :destroy, :class => 'delete' %> 
    <%= remove_child_link 'remove', f %> 
    </p> 
</div> 

不过,我得到下面的轨道错误:

NoMethodError in Living_groups#new 

Showing app/views/living_groups/_event.html.erb where line #24 raised: 

undefined method `_destroy' for #<Event:0x7f6da74b1a60> 

Extracted source (around line #24): 

21: </p> 
22: <p> 
23:  <%= f.hidden_field :destroy, :class => 'delete' %> 
24:  <%= remove_child_link 'remove', f %> 
25: </p> 
26: </div> 
Trace of template inclusion: app/views/living_groups/_form.html.erb, app/views/living_groups/new.html.erb 

destroyevents_controller.rb定义!

# DELETE /events/1 
    # DELETE /events/1.xml 
    def destroy 
    @event = Event.find(params[:id]) 
    @event.destroy 

    respond_to do |format| 
     format.html { redirect_to(events_url) } 
     format.xml { head :ok } 
    end 
    end 

编辑:哎呦,should have looked harder。希望这对某人有帮助。

回答