У меня есть две таблицы User и UserToken. Пользователь has_one: token
и UserToken belongs_to :user
. У меня сложилось впечатление, что это добавит метод UserToken # User в класс UserToken. Однако я получаю:
неопределенный метод 'user' для '#' со следующим 'UserToken.where (user_id: 1) .user
Не яправильно понять ассоциацию или я правильно ее не настроил?
UsersController:
def get
user = UserToken.where(user_id: 1).user
render json: user.to_json
end
Модель пользователя:
class User < ApplicationRecord
has_one :user_token
end
UserToken Модель:
class UserToken < ApplicationRecord
belongs_to :user
end
Миграция:
def change
create_table :users do |t|
# This id comes from Auth0
t.datetime :date
t.timestamp :updated_at
t.timestamp :created_at
end
create_table :user_tokens do |t|
t.belongs_to :user
# This comes from plaid when a user signs in
t.string :token
t.timestamp :updated_at
t.timestamp :created_at
end
end
Схема:
ActiveRecord::Schema.define(version: 2019_09_19_004350) do
create_table "user_tokens", force: :cascade do |t|
t.bigint "user_id"
t.string "token"
t.datetime "updated_at"
t.datetime "created_at"
t.index ["user_id"], name: "index_user_tokens_on_user_id"
end
create_table "users", force: :cascade do |t|
t.datetime "date"
t.datetime "updated_at"
t.datetime "created_at"
end
end