ビデオ、トピック、およびユーザーをプロファイルに投稿できるように、 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