Ruby On Rails에서 속성의 기본값을 설정하는 방법
4601 단어 tutorialrubybeginnersprogramming
매개변수 없이 새 모델을 생성하면 속성이 초기화되지 않기 때문에 속성 유형에 따라 기본값이 설정됩니다.
불필요한 정보로 데이터베이스를 채우고 싶지 않다면 이것은 매우 좋은 생각입니다.
Ruby on Rails는 기본값을 추가할 수 있는 많은 옵션을 제공하지만 모두 좋은 것은 아닙니다.
다음은 기본값을 추가하는 방법에 대한 좋은 예 목록입니다.
after_initialize
콜백을 사용합니다. before_validate
콜백을 사용합니다. nil인 경우에만 모델에 기본값을 설정합니다. 옵션 1: 마이그레이션을 통해 데이터베이스에서 직접 기본값 설정
Ruby on Rails에서는 마이그레이션의 일부로 포함하여 데이터베이스의 속성에 대한 기본값을 설정할 수 있습니다.
구문은
default: 'value'
입니다.이는 한 번에 많은 속성을 정의하려는 경우에 유용하며
db/schema.rb
파일을 볼 때 기본값이 무엇인지 한 눈에 쉽게 확인할 수 있습니다.class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :name, default: "First Last", null: false
end
end
end
옵션 2: after_initialize 콜백 사용
개발자가 기본값을 설정하는 데 도움이 되는 콜백
after_initialize
이 있습니다.특히 일부 계산을 수행해야 하는 경우.
이 콜백은 모델이 시작된 후 호출되며 개발자는 모델을 업데이트하기 전에 기본값에 액세스할 수 있습니다.
예를 들어 앱에서 사용자의 기본 이름을 설정하고 싶다고 가정해 보겠습니다.
class User < ApplicationRecord
after_initialize :set_defaults
def set_defaults
name = "First Last"
end
end
옵션 3: before_validate 콜백을 사용합니다. 누락된 경우 모델에 기본값 설정
Ruby on Rails에서
before_validation
를 사용하여 모델의 속성에 대한 기본값을 설정할 수 있습니다.이는 모델에 항상 유효한 속성이 있는지 확인하는 좋은 방법이며 매우 간단합니다.
class User < ApplicationRecord
before_validation :set_defaults
private
def set_defaults
name = "First Last" if name.blank?
end
end
그리고 그게 다야!
다음 사항을 언급할 가치가 있습니다.
def set_defaults
name = "First Last"
end
(이 예상치 못한 동작은 개발자에게 혼란을 줄 것입니다.)
before_save :set_defaults
private
def set_defaults
name = nil if name.blank?
end
(이렇게 하면 DB에 유효하지 않은 데이터가 추가되거나 런타임 오류가 발생합니다.)
Paul Keen은 JetThoughts의 최고 기술 책임자입니다. 그를 팔로우하거나 GitHub .
If you enjoyed this story, we recommend reading our latest tech stories and trending tech stories.
Reference
이 문제에 관하여(Ruby On Rails에서 속성의 기본값을 설정하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jetthoughts/how-to-setup-default-values-for-attributes-in-ruby-on-rails-l8m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)