Rails, как санировать в модели - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть следующая модель

Diary.rb

class Diary < ApplicationRecord
    belongs_to :student
    belongs_to :user
    belongs_to :grade
    has_many :diary_entries

    validates :diary_year, presence: true

    def self.from_student(owner, student_obj)
        new(
            user_id: owner.id,
            student_id: student_obj.id,
            grade_id: student_obj.grade_id,
 #How to add diary_year here..... 
        )
    end
      
end

Мой дневник имел только три атрибута: user_id, grade_id, student_id ... Я добавил дополнительный атрибут diary_year, diary_year - целое число, и я не уверен, что это правильный синтаксис, чтобы добавить его к self.from_student ..

Я думаю, но это не удается.

diary_year: subject_obj.diary_year

Вот мой контроллер

def create
    @diary = Diary.from_student(current_user, @student)
    @diary.save
    redirect_to @student, notice: "Diary was successfully created."
 end

1 Ответ

1 голос
/ 27 февраля 2020

Вы можете заполнить поле с помощью Date.today.year в методе:

class Diary < ApplicationRecord
    belongs_to :student
    belongs_to :user
    belongs_to :grade
    has_many :diary_entries

    validates :diary_year, presence: true

    def self.from_student(owner, student_obj)
        new(
        user_id: owner.id,
        student_id: student_obj.id,
        grade_id: student_obj.grade_id,
        diary_year: Date.today.year #this populates the field automatically
        )
    end

end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...