1

Interviews_participant コントローラーを使用して、interview_participant テーブルのエントリを削除しようとしています。私は多くの問題を経験しましたが、エラーで立ち往生しています:

InterviewsParticipantsController#destroy の ArgumentError 「引数の数が間違っています (1 に対して 0)」

Interview_participant のモデルは...

class InterviewParticipant < ActiveRecord::Base
  belongs_to :interview
  belongs_to :participant

  attr_accessible :interview_id, :participant_id

そして、interview_participants コントローラーの destroy メソッドは

  def destroy
    @interview_participant = InterviewParticipant.where(:interview_id => params[:interview_id]).where(:participant_id => params[:participant_id])
    @interview_participant.destroy

    respond_to do |format|
      format.html { redirect_to interview_participant_url }
      format.json { head :no_content }
    end
  end

この destroy メソッドを使用して、interview_participant テーブルの行を削除することにより、インタビューから参加者を削除できるようにしたいと考えています。インタビューの「表示」ビューで、参加者を表示していますが、参加者を削除するボタンが必要です。インタビューのショービューで...

<p>
  <b>Participants</b>
  <% @interview.participants.each do |participant| %>
    <dd><%= participant.name %></dd>
    <dd><%= button_to( "Remove", {
                     :controller => "interview_participants",
                     :action => "destroy",
                     :interview_id => @interview.id,
                     :participant_id => participant.id },
                     :method => :delete,
                     :confirm => "Are you sure?"
                     ) %></dd>
  <% end %>
</p>

/interview_participants/1?interview_id=3&participant_id=2URL が(参加者 2 とインタビュー 3 の横にあるボタンを押したとき) であるため、正しい引数を渡していると思います。しかし、ブラウザで「引数の数が間違っています」というエラーが表示されます。私はこれを数時間見てきましたが、何か助けていただければ幸いです。

4

1 に答える 1