Как связать две таблицы в Rails?

Здравствуйте! Есть у меня проблема, сразу прошу не ругать за то что чайник, так вот. Есть у меня в ToDo приложение, и надо мне связать таблицу Project(id, name) с таблицей Task(id, name, status, project_id). Что бы в одном project было множество task.
Мне надо создавать task для текущего project. Как?
  • Вопрос задан
  • 3557 просмотров
Решения вопроса 2
YourWest
@YourWest
Ruby Developer
Вам нужна связь has_many. Для этого в модели Project Вам надо прописать:

# project.rb
has_many :tasks

# вызывать так
project = Project.first
project.tasks            # список всех тасков у проекта
project.tasks.create({ ... })  # создание нового таска

Подробнее можете почитать здесь: rusrails.ru/active-record-associations#svyaz-has_many
Ответ написан
@TM_ID
Модель Project
class Project < ActiveRecord::Base
  has_many :tasks
end

Модель Task
class Task < ActiveRecord::Base
  belongs_to :projects
end
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@brikstar
А как правильно все это вывести во вьювере в виде дерева?

<% @projects.each do |project| %>
	<%= project.name %><br/>
	<% Project.find(project.id).tasks.each do |task| %>
		<%= task.name %><br/>
	<% end %>
<% end %>


Так правильно?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы