1
resposta

Problema na atribui de departamento

A atribuição proposta no vídeo não funciona.

Tentei outra atribuição conforme outro tópico aqui, que sugeria "produto.departamento = Departamento.last", mas tambem falhou.

No meu projeto, em vez de produto é Product e em vez de Departamento é Department


class Product < ApplicationRecord belongs_to :department validates :price, presence: true validates :name, length: { minimum: 4 } end

class Department < ApplicationRecord end


Abaixo os logs

irb(main):011:0> x =>

#<Product id: 10, name: "Produto top", description: "de linha mesmo", price: 0.49e0, quantity: 13, created_at: "2021-01-10 12:29:39.552848000 +0000", updated_at: "2021-01-10 12:29:39.552848000 +0000", id_departament: nil>

irb(main):012:0> x.department => nil

irb(main):013:0> x.department = Department.last

Department Load (0.1ms) SELECT "departments".* FROM "departments" ORDER BY "departments"."id" DESC LIMIT ? [["LIMIT", 1]] Traceback (most recent call last): 1: from (irb):13 ActiveModel::MissingAttributeError (can't write unknown attribute department_id)

1 resposta

Pessoal, entendi qual foi o problema.

Por convenção o rails te obriga a nomear a coluna como department_id. Eu pus id_department e por isso não funcionou. Ao renomear, o problema foi corrigido.