@rubylang

Страница 1235 из 1684
Алиф
06.10.2017
16:20:17
User.rb

has_many :posts, dependent: :destroy, foreign_key: "author_id", class_name: "Post"

@vasivas

Mighty
06.10.2017
16:21:13
Тебя не смущает что в обоих взаимосвязях ты проставил foreign key?

Google
Mighty
06.10.2017
16:21:43
Зачем то ключи явно прописал

Aldar
06.10.2017
16:21:44
у юзера убери foreign_key

Mighty
06.10.2017
16:21:50
Хотя они автоматом подтягиваются

Максимум класс нужен

Aldar
06.10.2017
16:22:00
User.rb has_many :posts, dependent: :destroy

Алиф
06.10.2017
16:22:31
убрал

Aldar
06.10.2017
16:22:32
больше ничего не надо

Алиф
06.10.2017
16:22:36
ActiveModel::MissingAttributeError: can't write unknown attribute `author_id`

ну не работает

Aldar
06.10.2017
16:23:25
schema.rb покажи

Алиф
06.10.2017
16:23:51
ActiveRecord::Schema.define(version: 20171005104835) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" create_table "posts", force: :cascade do |t| t.string "title" t.text "body" t.bigint "author_id" t.datetime "published_at" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["author_id"], name: "index_posts_on_author_id" end create_table "users", force: :cascade do |t| t.string "nickname" t.string "email" t.string "password_digest" t.string "token" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["token"], name: "index_users_on_token", unique: true end add_foreign_key "posts", "users", column: "author_id" end

Google
Vasiliy
06.10.2017
16:23:52
кстати да

а миграции к тестовой бд применял?

Алиф
06.10.2017
16:24:48
нет наверно

где проблема ?

Rustam
06.10.2017
16:26:42
ты же явно видишь в ошибке

Mighty
06.10.2017
16:27:40
Это в принципе потому что по дурацки модели и таблицы назвал

Более того, в юзерах я и индекс ключа не вижу

Алиф
06.10.2017
16:28:08
как мне справить ?

где ошибка ?

Mighty
06.10.2017
16:28:16
Где идентификатор то ?

Алиф
06.10.2017
16:29:39
не понял

Rustam
06.10.2017
16:30:43
там написано, что ты передпл число, когда activerecord инфернуть обьект типа юзер пытается. либо передавай author_id: user.id, либо author: user

хотя я есесно без понятия что у тебя там за таблица

Mighty
06.10.2017
16:31:26
Перед тем как писать

Короче 1. Модели назвал одним образом, ассоциации другим 2. Первичный ключ у юзера просто проебал

Судя по схеме

А не, второй пункт выкинь , схема не отражает дефолт постгреса

Rustam
06.10.2017
16:33:16
у меня только пост с ошибкой и вопросы про него, остальное о DI и bestpractics

Google
Rustam
06.10.2017
16:33:47
похожу у меня тут целого контекста обсуждения нет. посты не засинкалисб чтоли

Алиф
06.10.2017
16:36:31
не понимаю ну что я понял что мне нужно int insted of bigint

для это t.bigint "author_id"

нет не помагает :(

Aldar
06.10.2017
16:46:46
поменял bigint на int?

Алиф
06.10.2017
16:47:20
да ну не помагает

@hardliner

Aldar
06.10.2017
16:49:48
поменял и не помогает?

Алиф
06.10.2017
16:50:49
да

ну не помагает

Aldar
06.10.2017
16:51:13
покажи schemarb опять

Алиф
06.10.2017
16:51:15
create_table "posts", force: :cascade do |t| t.string "title" t.text "body" t.integer "author_id" t.datetime "published_at" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["author_id"], name: "index_posts_on_author_id" end @hardliner

Aldar
06.10.2017
16:51:35
ошибка какая?

Алиф
06.10.2017
16:52:10
когда так author: user, `ActiveModel::MissingAttributeError: can't write unknown attribute author_id `

@hardliner API app

Aldar
06.10.2017
16:53:58
а если попробовать author_id: user.id?

Алиф
06.10.2017
16:54:34
ActiveModel::UnknownAttributeError: unknown attribute 'author_id' for Post. @hardliner

Aldar
06.10.2017
16:56:10
а если это вернуть? has_many :posts, dependent: :destroy, foreign_key: "author_id", class_name: "Post"

Vasiliy
06.10.2017
16:56:36
запусти консоль и там проверь

Eugene
06.10.2017
17:00:56
=> #<Post id: nil, title: nil, body: nil, author_id: nil, published_at: nil, created_at: nil, updated_at: nil>

Google
Eugene
06.10.2017
17:01:17
мне аж стало интересно

Алиф
06.10.2017
17:02:36
вот что та не так

class Post < ApplicationRecord belongs_to :author, foreign_key: "author_id", class_name: 'User' delegate :nickname, to: :author, prefix: true, allow_nil: true # validates :published_at, :author, presence: true validates :body, length: { maximum: 250 } validates :title, length: { maximum: 100 } before_create on: :create do self.published_at ||= Time.now end end

http://tech.eshaiju.in/blog/2016/02/15/rails-5-belongs-to-associations-default-to-required-true/

вот это был проблема

rails 5 by defualt belongs_to

@vasivas @Eugene_Shved @hardliner

thanks

before_create on: :create do self.published_at ||= Time.now end

Admin
ERROR: S client not available

Алиф
06.10.2017
17:14:07
validates :published_at, :author, presence: true

http://prntscr.com/gu4cz0

Eugene
06.10.2017
17:14:37
что в валидации делает author

если там стоит author_id в схеме

Алиф
06.10.2017
17:15:33
Post.create!(title: "title", body: "body", author_id: u.id) (0.2ms) BEGIN (0.1ms) ROLLBACK ActiveRecord::RecordInvalid: Validation failed: Published at can't be blank

validates :published_at, :author_id, presence: true

Vasiliy
06.10.2017
17:15:57
погоди, так у тебя юзер же есть

что в валидации делает author
так можно, он разруливает связь

у меня в проекте belongs_to :user validates :user, presence: true

Алиф
06.10.2017
17:17:12
@vasivas class Post < ApplicationRecord belongs_to :author, foreign_key: "author_id", class_name: 'User', optional: true delegate :nickname, to: :author, prefix: true, allow_nil: true validates :published_at, :author_id, presence: true validates :body, length: { maximum: 250 } validates :title, length: { maximum: 100 } before_create on: :create do self.published_at ||= Time.now end end

Google
Алиф
06.10.2017
17:17:49
почему ? error

ost.create!(title: "title", body: "body", author_id: u.id) (0.2ms) BEGIN (0.1ms) ROLLBACK ActiveRecord::RecordInvalid: Validation failed: Published at can't be blank

Vasiliy
06.10.2017
17:18:08
почитай про жизненый цикл ар

валидация сохранение

before_validation

Алиф
06.10.2017
17:18:57
before_validation
да спасибо

irb(main):003:0> Post.create(title: "title", body: "body", author_id: u.id) (0.2ms) BEGIN SQL (6.8ms) INSERT INTO "posts" ("title", "body", "author_id", "published_at", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id" [["title", "title"], ["body", "body"], ["author_id", 2], ["published_at", "2017-10-06 17:21:21.816188"], ["created_at", "2017-10-06 17:21:21.817818"], ["updated_at", "2017-10-06 17:21:21.817818"]] (6.1ms) COMMIT => #<Post id: 3, title: "title", body: "body", author_id: 2, published_at: "2017-10-06 17:21:21", created_at: "2017-10-06 17:21:21", updated_at: "2017-10-06 17:21:21"> irb(main):004:0>

ну

Failure/Error: @post = Post.new( title: Faker::Lorem.word, body: Faker::Lorem.sentence, author_id: user.id, published_at: Faker::Time.between(DateTime.now - 30.days, DateTime.now + 30.days) ) ActiveModel::UnknownAttributeError: unknown attribute 'author_id' for Post.

:(

@vasivas

@Eugene_Shved

что за проблема

any help @vasivas

Eugene
06.10.2017
18:00:26
Походу тебе надо премиальная подписка на этот чат для дальнейшего решения проблемы. В пятницу вечером я вот не знаю кто будет помогать тебе

Попробуй закинуть на stackoverflow.com

Нужные log files у тебя уже имеются

Алиф
06.10.2017
19:24:11
@Eugene_Shved my accoutn is block stackoverflow.com

thanks for try to help

Anna
06.10.2017
19:26:51
thanks for try to help
Грамматика английского языка всё ещё ждёт тебя

Vasiliy
06.10.2017
19:34:52
По моему в России только так за грамматику английского переживают

Anna
06.10.2017
19:35:42
смотря какие ошибки

Страница 1235 из 1684