我正在尝试使用rails。我关注http://guides.rubyonrails.org/getting_started.html 我添加了相关的模型。但是当我创建新事件时......它也会复制它。
class EventsController < ApplicationController
def create
@category = Category.find(params[:category_id])
@event = @category.events.create(event_params)
redirect_to category_path(@category)
end
def destroy
@category = Category.find(params[:category_id])
@event = @category.events.find(params[:id])
@event.destroy
redirect_to category_path(@category)
end
private
def event_params
params.require(:event).permit(:event, :genus, :description)
end
端
这是模特:
class Event < ActiveRecord::Base
belongs_to :category
end
以下是我用于在特定类别中保存事件的表单:
<%= form_for ([@category, @category.events.build]) do |f| %>
<p>
<%= f.label :name %><br>
<%= f.text_field :event %>
</p>
<p>
<%= f.label :genus %><br>
<%= f.text_field :genus %>
</p>
<p>
<%= f.label :description %><br>
<%= f.text_area :description %>
</p>
<p>
<%= f.submit %>
</p>
这是节目视图代码:
<p>
<strong>Title:</strong>
<%= @category.name %>
</p>
<p>
<strong>Text:</strong>
<%= @category.key %>
</p>
<h2>Events</h2>
<%= render @category.events %>
<h2>
Add Event
</h2>
<%= render 'events/form' %>
<%= link_to 'Back', categories_path %>
当我创建记录时,它会创建重复的条目 删除记录删除两个条目。
我无法弄清楚我的代码是什么问题。我只是按照指南......
答案 0 :(得分:0)
好的,我发现了什么问题。它是&lt;%@ category.events.each do | event | %GT; _event.html.erb中的行它正在创建重复的视图。 谢谢大家的帮助
<% @category.events.each do |event| %>
<p>
<strong>Event Name:</strong>
<%= event.name %>
</p>
<p>
<strong>Genus:</strong>
<%= event.genus %>
</p>
<p>
<strong>Description:</strong>
<%= event.description %>
</p>
<p>
<%= link_to 'Destroy Event', [event.category, event], method: :delete, data: {confirm: 'Are you sure?'} %>
</p>
<% end >
应该是这样的:
<p>
<strong>Event Name:</strong>
<%= event.name %>
</p>
<p>
<strong>Genus:</strong>
<%= event.genus %>
</p>
<p>
<strong>Description:</strong>
<%= event.description %>
</p>
<p>
<%= link_to 'Destroy Event', [event.category, event], method: :delete, data: {confirm: 'Are you sure?'} %>
</p>
我理解的是,当&lt;%= render @ category / events%&gt;重定向到此页面。 它两次查询数据。
如果我不对,请纠正我?
但我不明白为什么会产生重复记录?