Я использую плагин has_many_polymorphs , чтобы видео, темы и пользователи могли публиковаться в профилях. Следовательно, в профиле есть много «showable_objects», которые могут быть видео, темами и пользователями. Кроме того, пользователь, который создает «showable_object», также будет связан с ним. Я уже настроил ассоциации моделей (ниже).
Я хочу, чтобы объект showable_object создавался для того, чтобы пользователь выбирал другого пользователя из поля автозаполнения на странице показа ресурса. Затем этот ресурс связывается с профилем выбранного пользователя.
Мой вопрос: как мне настроить мой контроллер showable_objects? Кроме того, если я хочу, чтобы он был отправлен через AJAX, как будет выглядеть запрос AJAX jQuery?
UPDATE:
Вот мои модельные ассоциации:
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
Кстати, я также получаю эту ошибку от этих ассоциаций (так что на самом деле это вопрос из двух частей: 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
в пользовательской модели.