0

私のユーザーモデルは以下のとおりですuser.rb

has_many :authorised_downloads, 
:class_name=>"Downloads",
:primary_key => 'id', 
:foreign_key=> :authorised_user_id

ダウンロードモデルdownload.rb

belongs_to :authorised_users, 
:class_name => "User",
:primary_key => 'id',
:foreign_key=> :authorised_user_id

ダウンロードコントローラー

def download
@download = Download.find(params[:id])
if @download.authorised_users.includes?(current_user)
  send_file(@download.upload_file.path,
  :filename => @download.name,       
  :x_sendfile=>true,
  :url_based_filename => true )               
  flash[:notice] = "Your file has been downloaded"
else
   flash[:notice] = "You must buy the product first!"
end
end

ダウンロード ビューで、ダウンロード リンクをクリックするif @download.authorised_users.includes?(current_user)と、ダウンロード コントローラーの行が次のエラーで強調表示されます。

undefined method `includes?' for #<User:0x00000005c2ff10>

どこが間違っているのかわかりません。あなたの援助は非常に高く評価されます

4

1 に答える 1

0

@download.authorised_usersコレクションではなく、ユーザーのインスタンスを返します。紀元前belongs_to :authorised_users

試す:

belongs_to :authorised_user, :class_name => "User"

そしてコントローラーで:

if @download.authorised_user == current_user
于 2013-09-18T07:57:28.440 に答える