2016-12-08 2 views
0

Я работаю над приложением Rails и сделал некоторые начальные миграции и ассоциации. Вот схема я в настоящее время:Как создать схему для блога, где сообщения относятся к категориям (например, Музыка, Аниме, Продукты) и относятся к различным таблицам на основе категории?

Current Schema

Прямо сейчас, я не уверен, что если эта схема будет реально работать. Я пытаюсь включить различные данные в свои сообщения в зависимости от категории (например, если сообщение находится в категории «Музыка», оно покажет название записи вместе с художниками, которые ее создали). Теперь у меня есть некоторые из таблиц, которые будут иметь hardcoded category_id (например, products, episodes, records).

ответ

1

Если вы пытаетесь включить некоторые данные музыкальной записи в сообщение, это означает, что вам нужно создать отношения между двумя таблицами. например:

rails g migration add_record_references_to_posts record:references 

rake db:migrate затем

модели/post.rb:

belongs_to :record 
validates :band_type, presence: true, if: 'category.id == 2' 

модели/record.rb:

has_many :posts 

Таким образом, вы можете выбрать из какой записи ваше сообщение принадлежит использованию select (не забудьте добавить это в вашу форму). Затем вы сможете получить свой титул записи из вашего поста, например, в вашем посте показать страницу вы можете сделать:

<% if @post.category.name == "Music" %> 
<%= @post.record.title %> 
<%= @post.record.name %> 
<% end %> 

В вашей почтовой форме вы можете использовать JQuery, чтобы показать или скрыть входы, характерные для поста категория.

Я, однако, не думаю, что вам нужна таблица категории вообще. Вы сможете узнать, какая публикация зависит от наличия почтовых отношений с другими таблицами (записями, эпизодами или продуктами). Например, если сообщение (объект не модель) относится к продукту, вы будете знать, что это сообщение является продуктом, так что вы можете сделать, например:

<% if @post.record.present? %> 
    <%= @post.record.title %> 
    <%= @post.record.name %> 
<% end %> 
+0

Я использую React (JSX) вместо Erbs , Но как работает модель Post, если я пытаюсь сделать так, чтобы записи принадлежали либо записи, либо продукту, либо эпизоду по категории? – srinitude

 Смежные вопросы

  • Нет связанных вопросов^_^