0

ビデオ、トピック、およびユーザーをプロファイルに投稿できるように、 has_many_polymorphsプラグインを使用しています。したがって、プロファイルには、ビデオ、トピック、およびユーザーである可能性のある多くの「showable_objects」があります。また、「showable_object」を作成したユーザーも関連付けられます。モデルの関連付けは既に設定しています (以下)。

showable_object を作成する方法は、ユーザーがリソースの表示ページのオートコンプリート フィールドから別のユーザーを選択することです。次に、そのリソースが、選択したユーザーのプロファイルに関連付けられます。

私の質問は、showable_objects コントローラーをどのように設定すればよいですか? また、AJAX 経由で送信したい場合、AJAX jQuery リクエストはどのようになりますか?

アップデート:

ここに私のモデルの関連付けがあります:

class ShowableObject < ActiveRecord::Base
  belongs_to :showable_object, :polymorphic => true
  belongs_to :user
  belongs_to :profile
end

class Profile < ActiveRecord::Base
  has_many_polymorphs :showable_objects, :from => [:videos, :users, :topics, :video_votes],
                                         :dependent => :destroy
end

class User < ActiveRecord::Base
  has_many_polymorphs :showable_objects, :from => [:videos, :users, :topics, :video_votes],
                                         :dependent => :destroy
end

これは私の ShowableObject 移行です:

class CreateShowableObjects < ActiveRecord::Migration
  def self.up
    create_table :showable_objects do |t|
      t.references :showable_object, :polymorphic => true
      t.references :profile
      t.references :user

      t.timestamps
    end
  end

  def self.down
    drop_table :showable_objects
  end
end

ちなみに、これらの関連付けからこのエラーも発生しています(したがって、これは実際には2つの部分からなる質問です:P):

ActiveRecord::Associations::PolymorphicError in Videos#index

Showing /rubyprograms/dreamstill/app/views/videos/_video.html.erb where line #24 raised:

Could not find a valid class for :showable_objects_users (tried ShowableObjectsUser). If it's namespaced, be sure to specify it as :"module/showable_objects_users" instead.

これはこの行を指しており、ユーザー モデルで<% if video.owned_by? current_user %>の呼び出しに関係しています。has_many_polymorphs

4

1 に答える 1

0

私はそれを使用したことがなく、現在いくつかの調査を行っていますが、あなたの質問に rails-3 のタグを付けていることに気付きました。私の理解では、has_many_polymorphs はそれで動作しません。エラーに役立つ可能性のある次のフォークを見つけました: has_many_polymorphs by jystewart for rails 3

于 2011-06-16T13:32:17.517 に答える