В моем приложении rails у меня есть две модели, называемые Kases и Notes. Они работают так же, как и комментарии к сообщениям в блоге, I.e. каждая запись Kase может содержать несколько заметок.Связанные модели в Rails?
У меня все работает, но по какой-то причине я не могу получить ссылку на уничтожение для заметок. Я думаю, что я пропускаю то, что отличается от связанных моделей с стандартными моделями.
Примечания Контроллер
class NotesController < ApplicationController
# POST /notes
# POST /notes.xml
def create
@kase = Kase.find(params[:kase_id])
@note = @kase.notes.create!(params[:note])
respond_to do |format|
format.html { redirect_to @kase }
format.js
end
end
end
Касе Модель
class Kase < ActiveRecord::Base
validates_presence_of :jobno
has_many :notes
Примечание Модель
class Note < ActiveRecord::Base
belongs_to :kase
end
В Kas е показать вид я называю частично внутри/нот называется _notes.html.erb:
Касе Show View
<div id="notes">
<h2>Notes</h2>
<%= render :partial => @kase.notes %>
<% form_for [@kase, Note.new] do |f| %>
<p>
<h3>Add a new note</h3>
<%= f.text_field :body %><%= f.submit "Add Note" %>
</p>
<% end %>
</div>
/notes/_note.html.erb
<% div_for note do %>
<div id="sub-notes">
<p>
<%= h(note.body) %><br />
<span style="font-size:smaller">Created <%= time_ago_in_words(note.created_at) %> ago on <%= note.created_at %></span>
</p>
<%= link_to "Remove Note", kase_path(@kase), :confirm => 'Are you sure?', :method => :delete, :class => 'important' %>
</div>
<% end %>
Как вы можете видеть, у меня есть ссылка Remove Note destroy, но это уничтожает всю связанную с записью Kase. Как сделать ссылку destroy удалить только заметку?
<%= link_to "Remove Note", kase_path(@kase), :confirm => 'Are you sure?', :method => :delete, :class => 'important' %>
Любая помощь, как всегда, будет принята с благодарностью!
Спасибо,
Дэнни
Отлично, это был map.resources, который мне не хватало. Woops! Спасибо! – dannymcc