Я пытаюсь научиться использовать рельсы. Я следующие 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 %>
Вещь, когда я создаю запись .. создает двойную запись и удалять запись удаляет обе записи.
Я не могу понять, что случилось с моим кодом. Я просто следовал руководство ..
Какой ключ дублируется? идентификатор события? И что такое '<% = f.text_field: event%>' в форме? Может быть, ': name' правильно установлен': event'. Если это так, вы должны изменить 'def event_param', как показано ниже:' params.require (: event) .permit (: name,: genus,: description) '. – shoji
Вам также нужна категория-модель, которая гласит: has_many: events – ljnissen
@ljnissen У меня есть :) –