0

リッチ結合テーブルを介して多くの休日を持つことができるユーザー モデルがあります。私のビューの destroy ステートメントは、本来の user_holidays テーブルではなく、休日テーブルから削除しています。以下を参照してください。

class HolidaysController < ApplicationController
  def destroy 
  @user = User.find(params[:user_id]) 
  @user_holiday = @user.holidays.find(params[:id]) 
  @user_holiday.destroy 
  redirect_to @user 
  end
end

表示ボタンは次のとおりです。

<% @user.holidays.each do |hld| %>
                  <td><%= hld.name %></td>
                  <td><%= hld.date %></td>
                <td>
                    <%= button_to('Destroy', user_holiday_path(@user, hld), :method => 'delete', :class => 'btn btn-large btn-primary') %>

モデル:

class User < ActiveRecord::Base 
has_many :user_holidays 
has_many :holidays, :through => :user_holidays

class UserHoliday < ActiveRecord::Base 
attr_accessible :holiday_id, :user_id 
belongs_to :user 
belongs_to :holiday 

class Holiday < ActiveRecord::Base 
attr_accessible :name, :date 
has_many :user_holidays 
has_many :users, :through => :user_holidays 

何か案は?ありがとう!!!!

4

2 に答える 2

1

@user.user_holidays代わりに使用する必要があります@user.holidays

@user_holiday = @user.user_holidays.where(holiday_id: params[:id])
于 2012-05-23T05:19:59.620 に答える
0

(私の悪い人はあなたの質問を正しく読んでいませんでした)

 @user = User.find(params[:user_id]) 
 @user.holidays.delete(@user.holidays.find(params[:id]))
于 2012-05-23T04:08:00.677 に答える