0

私のモデルには Chords があり、Chordnotes を介して Notes と多対多の関係があります。私のコード/ショーは次のようになります。

      <% @chord.notes.each do |note| %>
        <li id="NoteID<%= note.id %>" >
          <span class="content"><%= note.name %> (<%= note.description %>) (ID: <%= note.id %>)</span>
          <span class="timestamp">
            Created <%= time_ago_in_words(note.created_at) %> ago.
          </span>
          <span class="content">
            <%= link_to "remove (not working)", '#' %>
          </span>
        </li>
      <% end %>

ノートではなく、ノートをコードにリンクするコードノートを削除するには、link_to タグを削除します。< li > タグで #id を参照することでこれを実行しようとしました。これは Note の ID であり、ユーザーがいる /show ページから Note ID と Chord ID を渡します。私の Chordnote コントローラは次のようになります。

def destroy
  @chord = Chord.find(chord-id) <-- how do I get this chord id??
  @note = Note.find(note-id) <-- how do I get this note id??
    Chordnote.find_by(note_id: @note.id, chord_id: @chord.id).destroy
  redirect_to chord_path(@chord)
end

この破棄アクションは、chord-id と note-id を ID # でハードコーディングすると機能しますが、関連する Note と Chord ID を chords/show ページから渡す方法がわかりません。

どんな助けでも大歓迎です、ありがとう!

4

1 に答える 1

0

これはテストされていません。しかし、link_to を介して関連データを渡そうとしましたか?

<% @chord.notes.each do |note| %>
  <li id="NoteID<%= note.id %>" >
    <span class="content"><%= note.name %> (<%= note.description %>) (ID: <%= note.id %>)</span>
    <span class="timestamp">
      Created <%= time_ago_in_words(note.created_at) %> ago.
    </span>
    <span class="content">
      <%= link_to "remove (not working)", {controller: "whatever_controller", action: "destroy", chord_id: @chord.id, note_id: note.id } %>
    </span>
  </li>
<% end %>

そして、destroy メソッドでこれらにアクセスします。

def destroy
  @chord = Chord.find( params[:chord_id] )
  @note = Note.find( params[:note_id] ) <-- how do I get this note id??
   Chordnote.find_by(note_id: @note.id, chord_id: @chord.id).destroy
  redirect_to chord_path(@chord)
end
于 2013-08-15T02:54:02.587 に答える