레일을 사용하는 법을 배우려합니다. 나는 다음과 같음 http://guides.rubyonrails.org/getting_started.html 나는 관련된 모델을 추가했다. 하지만 새로운 이벤트를 만들 때도 똑같이 복제합니다.중복 레코드를 만드는 레일
<%= 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>
이가있다 : 여기
class Event < ActiveRecord::Base
belongs_to :category
end
내가 특정 범주에 이벤트를 저장하기 위해 사용하고있는 형태이다 : 여기서 끝
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
모델입니다 쇼 코드보기 :
<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 %>
내가 레코드를 만들 때 중복 항목이 생성되고 삭제 레코드가 있으면 두 항목이 모두 삭제됩니다.
내 코드에 무슨 문제가 있는지 파악할 수 없습니다. 난 그냥,
복제 된 키는 무엇입니까? 이벤트 ID? 그리고'<% = f.text_field : event %>'는 형태로 무엇입니까? 어쩌면': name'은': event'의 올바른 insted입니다. 그렇다면'def event_param'을'params.require (: event) .permit (: name, : genus, : description)'와 같이 변경해야합니다. – shoji
다음과 같은 범주 모델이 필요합니다. has_many : events – ljnissen
@ljnissen 알겠습니다. –