Я новичок в Ruby -on-Rails, и я начал исследовать ActiveRecords. И я сталкиваюсь с одной проблемой.
У меня есть две таблицы: todo_lists
и users
. Первый имеет следующие записи: title
, description
, user_id
, deadline
. А у второй только одна запись: name
. Я хочу получить таблицу, которая содержит следующие записи: title
, description
, name
, deadline
, т.е. объединить две таблицы и поставить user
вместо user_id
. Я пытаюсь решить эту проблему, используя joins
:
TodoList.joins(:user).select("todo_lists.title, todo_lists.description, users.name, todo_lists.deadline")
Но я получаю новый ActiveRecord::Relation
без users.name
:
[#<TodoList id: nil, title: "This is title", description: "This is description", deadline: "2020-03-13 18:59:58">]
Это мои todo_list.rb
и user.rb
файлы:
class TodoList < ApplicationRecord
belongs_to :user
end
class User < ApplicationRecord
has_many :todo_lists
end
schema.rb
файл:
ActiveRecord::Schema.define(version: 2020_03_13_183504) do
create_table "todo_lists", force: :cascade do |t|
t.string "description", null: false
t.integer "user_id", null: false
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.boolean "is_disabled"
t.datetime "deadline"
end
create_table "users", force: :cascade do |t|
t.string "name", null: false
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
add_foreign_key "todo_lists", "users"
end
Может кто-нибудь помочь мне решить эту проблему?