Rails5에서 enum을 사용할 때는 _prefix (접두사) _suffix (접미사)를 사용합시다.
13667 단어 enumActiveRecordRails5
이 기사에서 전하고 싶은 것
Rails5에서 ActiveRecord::Enum
를 정의 할 때 _prefix
, _suffix
라는 무기가 있다는 것을 알고 싶습니다.
핵심 부분만 보고 싶은 분은 단축키
2019.09.12
문장의 「입니다・합니다」조를 통일.
2019.06.01
예제로 사용되는 테이블에 대한 설명 추가
Rails 버전
bash ./bin/rails --version
Rails 5.2.0
_prefix, _suffix 정의
You can use the :_prefix or :_suffix options when you need to define multiple enums with same values. If the passed value is true, the methods are prefixed/suffixed with the name of the enum. It is also possible a custom value:
동일한 값을 가진 여러 enum을 정의해야 하는 경우 _prefix 또는 :_suffix 옵션을 사용할 수 있습니다. 건네받은 값이 true 의 경우, 메소드에는 enum 의 이름의 접두사/접미사가 붙습니다. 사용자 정의 값을 지정할 수도 있습니다.
하지만 이번 테마. 바로 같은 값을 가지는 복수의 enum
를 정의해 가자.
그리고 그 전에, 자주 있는 enum
정의와 그것이 좋지 않은 이유를 깊이 파고 가 이해도를 깊게 하자.
정의하고 싶은 내용
Conversation
(대화 : 대화, 대화) 테이블을 예로 들어 두 개의 enum
를 정의하고 싶습니다.
- status (상태. 0=유효, 10=아카이브)
- comments_status (코멘트 상태. 0=사용, 10=사용 안 함)
틀린 정의 1
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: { active: 0, archived: 10 }
enum comments_status: { active: 0 inactive: 10 }
end
결과
irb(main):004:0> c = Conversation.find(1)
ArgumentError (You tried to define an enum named "comments_status" on the model "Conversation", but this will generate a instance method "active?", which is already defined by another enum.)
오류. 나중에 추가한 comments_status
중 active
중복된 때문에.
틀린 정의 2
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: { active: 0, archived: 10 }
enum comments_status: { comments_status_active: 0, comments_status_inactive: 10 }
end
실수 1 오류를 피하기 위해 나중에 추가 comment_status
의 값을 다시 씁니다. 확실히 에러는 되지 않지만, 결과적으로 알고 괴로워졌다. 다음과 같이 비교할 때 기분 나빠질 것 같다.
conversation.comments_status_active? # 分かりやすい
conversation.active? # 「status.active か comments_status.active」 のどちらか分かり辛い。
틀린 정의 3
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: { status_active: 0, status_archived: 10 }
enum comments_status: { comments_status_active: 0, comments_status_inactive: 10 }
end
이번에는 통일성을 갖기 위해 각각 접두사를 붙이게 했다.
이것으로 중복 에러도 회피, 통일성이 있어 기분 나쁨도 회피와 문제 해소.
conversation.comments_status_active? # 分かりやすい
conversation.status_active? # 分かりやすい
확실히 이것으로 「중복도 하지 않는다」, 「혼란도 하기 어렵다」라고 문제 없을 것 같지만, _prefix(접두사), _suffix(접미사) 기능을 활용할 수 없다고 하는 점에서 좋은 설정이라고는 할 수 없을 것이다.
_prefix(접두사) _suffix(접미사) 사용
여기에서 책 테마의 중추.
_prefix(접두사)
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: [:active, :archived], _prefix: true
enum comments_status: [:active, :inactive], _prefix: true
end
각 enum 행의 뒤에 _prefix: true
를 부여.:active
는 enum status
와 enum comments_status
모두에 존재하는 값이지만 _prefix
를 부여하면 중복 오류가 발생하지 않습니다.
_prefix
는 접두사가 되므로 다음과 같은 조작이 가능하게 된다.
# 頭に status_ を付与
> conversation.status_archived! # 更新(UPDATE)
> conversation.status_archived? # true
> conversation.status_active? # false
# 頭に comments_status_ を付与
> conversation.comments_status_active! # 更新(UPDATE)
> conversation.comments_status_active? # true
> conversation.comments_status_inactive? # false
# 接頭辞なしはエラーになる
> conversation.active?
Traceback (most recent call last):
1: from (irb):11
NoMethodError (undefined method `active?' for #<Conversation:0x00007ff78097c910>)
_suffix(접미사)
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: [:active, :archived], _suffix: true
enum comments_status: [:active, :inactive], _suffix: true
end
다음 _suffix
(접미사). 다음과 같은 조작이 가능해진다.
# お尻に _status を付与
> conversation.archived_status! # 更新(UPDATE)
> conversation.archived_status? # true
> conversation.active_status? # false
# お尻に _comments_status を付与
> conversation.active_comments_status! # 更新(UPDATE)
> conversation.active_comments_status? # true
> conversation.inactive_comments_status? # false
# 接尾辞なしはエラーになる
> conversation.active?
Traceback (most recent call last):
1: from (irb):11
NoMethodError (undefined method `active?' for #<Conversation:0x00007ff78097c910>)
맞춤 값
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: [:active, :archived], _prefix: true
enum comments_status: [:active, :inactive], _prefix: :comments
end
comments_status
측만 _prefix: :comments
및 사용자 지정 값을 설정합니다.
이렇게 하면 접두사comments_status_
를 붙이기보다는 comments_
만으로 좋기 때문에 문자수가 줄어들어 의미도 이해하기 쉽다는 이점이 있다.
# 頭に comments_ を付与
> conversation.comments_active! # 更新(UPDATE)
> conversation.comments_active? # true
> conversation.comments_inactive? # false
요약
위의 실수 1, 2, 3은 실제로 내가 만난 내용입니다. 해보고 싶다.
좋은 controller는 좋은 model가 만든다. 좋은 model 은 좋은 enum 가 만든다
참고 링크
Ruby on Rails 5.1.6 > ActiveRecord::Enum
Change the World!> ActiveRecord::Enum 사용 및 중복 오류 방지
Qiita > Rails5에서 enum 정의한 열의 원래 값을 가져옵니다.
Reference
이 문제에 관하여(Rails5에서 enum을 사용할 때는 _prefix (접두사) _suffix (접미사)를 사용합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/emacs_hhkb/items/fce19f443e5770ad2e13
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
./bin/rails --version
Rails 5.2.0
You can use the :_prefix or :_suffix options when you need to define multiple enums with same values. If the passed value is true, the methods are prefixed/suffixed with the name of the enum. It is also possible a custom value:
동일한 값을 가진 여러 enum을 정의해야 하는 경우 _prefix 또는 :_suffix 옵션을 사용할 수 있습니다. 건네받은 값이 true 의 경우, 메소드에는 enum 의 이름의 접두사/접미사가 붙습니다. 사용자 정의 값을 지정할 수도 있습니다.
하지만 이번 테마. 바로 같은 값을 가지는 복수의
enum
를 정의해 가자.그리고 그 전에, 자주 있는
enum
정의와 그것이 좋지 않은 이유를 깊이 파고 가 이해도를 깊게 하자.정의하고 싶은 내용
Conversation
(대화 : 대화, 대화) 테이블을 예로 들어 두 개의 enum
를 정의하고 싶습니다.
- status (상태. 0=유효, 10=아카이브)
- comments_status (코멘트 상태. 0=사용, 10=사용 안 함)
틀린 정의 1
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: { active: 0, archived: 10 }
enum comments_status: { active: 0 inactive: 10 }
end
결과
irb(main):004:0> c = Conversation.find(1)
ArgumentError (You tried to define an enum named "comments_status" on the model "Conversation", but this will generate a instance method "active?", which is already defined by another enum.)
오류. 나중에 추가한 comments_status
중 active
중복된 때문에.
틀린 정의 2
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: { active: 0, archived: 10 }
enum comments_status: { comments_status_active: 0, comments_status_inactive: 10 }
end
실수 1 오류를 피하기 위해 나중에 추가 comment_status
의 값을 다시 씁니다. 확실히 에러는 되지 않지만, 결과적으로 알고 괴로워졌다. 다음과 같이 비교할 때 기분 나빠질 것 같다.
conversation.comments_status_active? # 分かりやすい
conversation.active? # 「status.active か comments_status.active」 のどちらか分かり辛い。
틀린 정의 3
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: { status_active: 0, status_archived: 10 }
enum comments_status: { comments_status_active: 0, comments_status_inactive: 10 }
end
이번에는 통일성을 갖기 위해 각각 접두사를 붙이게 했다.
이것으로 중복 에러도 회피, 통일성이 있어 기분 나쁨도 회피와 문제 해소.
conversation.comments_status_active? # 分かりやすい
conversation.status_active? # 分かりやすい
확실히 이것으로 「중복도 하지 않는다」, 「혼란도 하기 어렵다」라고 문제 없을 것 같지만, _prefix(접두사), _suffix(접미사) 기능을 활용할 수 없다고 하는 점에서 좋은 설정이라고는 할 수 없을 것이다.
_prefix(접두사) _suffix(접미사) 사용
여기에서 책 테마의 중추.
_prefix(접두사)
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: [:active, :archived], _prefix: true
enum comments_status: [:active, :inactive], _prefix: true
end
각 enum 행의 뒤에 _prefix: true
를 부여.:active
는 enum status
와 enum comments_status
모두에 존재하는 값이지만 _prefix
를 부여하면 중복 오류가 발생하지 않습니다.
_prefix
는 접두사가 되므로 다음과 같은 조작이 가능하게 된다.
# 頭に status_ を付与
> conversation.status_archived! # 更新(UPDATE)
> conversation.status_archived? # true
> conversation.status_active? # false
# 頭に comments_status_ を付与
> conversation.comments_status_active! # 更新(UPDATE)
> conversation.comments_status_active? # true
> conversation.comments_status_inactive? # false
# 接頭辞なしはエラーになる
> conversation.active?
Traceback (most recent call last):
1: from (irb):11
NoMethodError (undefined method `active?' for #<Conversation:0x00007ff78097c910>)
_suffix(접미사)
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: [:active, :archived], _suffix: true
enum comments_status: [:active, :inactive], _suffix: true
end
다음 _suffix
(접미사). 다음과 같은 조작이 가능해진다.
# お尻に _status を付与
> conversation.archived_status! # 更新(UPDATE)
> conversation.archived_status? # true
> conversation.active_status? # false
# お尻に _comments_status を付与
> conversation.active_comments_status! # 更新(UPDATE)
> conversation.active_comments_status? # true
> conversation.inactive_comments_status? # false
# 接尾辞なしはエラーになる
> conversation.active?
Traceback (most recent call last):
1: from (irb):11
NoMethodError (undefined method `active?' for #<Conversation:0x00007ff78097c910>)
맞춤 값
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: [:active, :archived], _prefix: true
enum comments_status: [:active, :inactive], _prefix: :comments
end
comments_status
측만 _prefix: :comments
및 사용자 지정 값을 설정합니다.
이렇게 하면 접두사comments_status_
를 붙이기보다는 comments_
만으로 좋기 때문에 문자수가 줄어들어 의미도 이해하기 쉽다는 이점이 있다.
# 頭に comments_ を付与
> conversation.comments_active! # 更新(UPDATE)
> conversation.comments_active? # true
> conversation.comments_inactive? # false
요약
위의 실수 1, 2, 3은 실제로 내가 만난 내용입니다. 해보고 싶다.
좋은 controller는 좋은 model가 만든다. 좋은 model 은 좋은 enum 가 만든다
참고 링크
Ruby on Rails 5.1.6 > ActiveRecord::Enum
Change the World!> ActiveRecord::Enum 사용 및 중복 오류 방지
Qiita > Rails5에서 enum 정의한 열의 원래 값을 가져옵니다.
Reference
이 문제에 관하여(Rails5에서 enum을 사용할 때는 _prefix (접두사) _suffix (접미사)를 사용합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/emacs_hhkb/items/fce19f443e5770ad2e13
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
/app/models/conversation.rb
class Conversation < ActiveRecord::Base
enum status: { active: 0, archived: 10 }
enum comments_status: { active: 0 inactive: 10 }
end
결과
irb(main):004:0> c = Conversation.find(1)
ArgumentError (You tried to define an enum named "comments_status" on the model "Conversation", but this will generate a instance method "active?", which is already defined by another enum.)
오류. 나중에 추가한
comments_status
중 active
중복된 때문에.틀린 정의 2
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: { active: 0, archived: 10 }
enum comments_status: { comments_status_active: 0, comments_status_inactive: 10 }
end
실수 1 오류를 피하기 위해 나중에 추가 comment_status
의 값을 다시 씁니다. 확실히 에러는 되지 않지만, 결과적으로 알고 괴로워졌다. 다음과 같이 비교할 때 기분 나빠질 것 같다.
conversation.comments_status_active? # 分かりやすい
conversation.active? # 「status.active か comments_status.active」 のどちらか分かり辛い。
틀린 정의 3
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: { status_active: 0, status_archived: 10 }
enum comments_status: { comments_status_active: 0, comments_status_inactive: 10 }
end
이번에는 통일성을 갖기 위해 각각 접두사를 붙이게 했다.
이것으로 중복 에러도 회피, 통일성이 있어 기분 나쁨도 회피와 문제 해소.
conversation.comments_status_active? # 分かりやすい
conversation.status_active? # 分かりやすい
확실히 이것으로 「중복도 하지 않는다」, 「혼란도 하기 어렵다」라고 문제 없을 것 같지만, _prefix(접두사), _suffix(접미사) 기능을 활용할 수 없다고 하는 점에서 좋은 설정이라고는 할 수 없을 것이다.
_prefix(접두사) _suffix(접미사) 사용
여기에서 책 테마의 중추.
_prefix(접두사)
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: [:active, :archived], _prefix: true
enum comments_status: [:active, :inactive], _prefix: true
end
각 enum 행의 뒤에 _prefix: true
를 부여.:active
는 enum status
와 enum comments_status
모두에 존재하는 값이지만 _prefix
를 부여하면 중복 오류가 발생하지 않습니다.
_prefix
는 접두사가 되므로 다음과 같은 조작이 가능하게 된다.
# 頭に status_ を付与
> conversation.status_archived! # 更新(UPDATE)
> conversation.status_archived? # true
> conversation.status_active? # false
# 頭に comments_status_ を付与
> conversation.comments_status_active! # 更新(UPDATE)
> conversation.comments_status_active? # true
> conversation.comments_status_inactive? # false
# 接頭辞なしはエラーになる
> conversation.active?
Traceback (most recent call last):
1: from (irb):11
NoMethodError (undefined method `active?' for #<Conversation:0x00007ff78097c910>)
_suffix(접미사)
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: [:active, :archived], _suffix: true
enum comments_status: [:active, :inactive], _suffix: true
end
다음 _suffix
(접미사). 다음과 같은 조작이 가능해진다.
# お尻に _status を付与
> conversation.archived_status! # 更新(UPDATE)
> conversation.archived_status? # true
> conversation.active_status? # false
# お尻に _comments_status を付与
> conversation.active_comments_status! # 更新(UPDATE)
> conversation.active_comments_status? # true
> conversation.inactive_comments_status? # false
# 接尾辞なしはエラーになる
> conversation.active?
Traceback (most recent call last):
1: from (irb):11
NoMethodError (undefined method `active?' for #<Conversation:0x00007ff78097c910>)
맞춤 값
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: [:active, :archived], _prefix: true
enum comments_status: [:active, :inactive], _prefix: :comments
end
comments_status
측만 _prefix: :comments
및 사용자 지정 값을 설정합니다.
이렇게 하면 접두사comments_status_
를 붙이기보다는 comments_
만으로 좋기 때문에 문자수가 줄어들어 의미도 이해하기 쉽다는 이점이 있다.
# 頭に comments_ を付与
> conversation.comments_active! # 更新(UPDATE)
> conversation.comments_active? # true
> conversation.comments_inactive? # false
요약
위의 실수 1, 2, 3은 실제로 내가 만난 내용입니다. 해보고 싶다.
좋은 controller는 좋은 model가 만든다. 좋은 model 은 좋은 enum 가 만든다
참고 링크
Ruby on Rails 5.1.6 > ActiveRecord::Enum
Change the World!> ActiveRecord::Enum 사용 및 중복 오류 방지
Qiita > Rails5에서 enum 정의한 열의 원래 값을 가져옵니다.
Reference
이 문제에 관하여(Rails5에서 enum을 사용할 때는 _prefix (접두사) _suffix (접미사)를 사용합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/emacs_hhkb/items/fce19f443e5770ad2e13
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class Conversation < ActiveRecord::Base
enum status: { active: 0, archived: 10 }
enum comments_status: { comments_status_active: 0, comments_status_inactive: 10 }
end
conversation.comments_status_active? # 分かりやすい
conversation.active? # 「status.active か comments_status.active」 のどちらか分かり辛い。
/app/models/conversation.rb
class Conversation < ActiveRecord::Base
enum status: { status_active: 0, status_archived: 10 }
enum comments_status: { comments_status_active: 0, comments_status_inactive: 10 }
end
이번에는 통일성을 갖기 위해 각각 접두사를 붙이게 했다.
이것으로 중복 에러도 회피, 통일성이 있어 기분 나쁨도 회피와 문제 해소.
conversation.comments_status_active? # 分かりやすい
conversation.status_active? # 分かりやすい
확실히 이것으로 「중복도 하지 않는다」, 「혼란도 하기 어렵다」라고 문제 없을 것 같지만, _prefix(접두사), _suffix(접미사) 기능을 활용할 수 없다고 하는 점에서 좋은 설정이라고는 할 수 없을 것이다.
_prefix(접두사) _suffix(접미사) 사용
여기에서 책 테마의 중추.
_prefix(접두사)
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: [:active, :archived], _prefix: true
enum comments_status: [:active, :inactive], _prefix: true
end
각 enum 행의 뒤에 _prefix: true
를 부여.:active
는 enum status
와 enum comments_status
모두에 존재하는 값이지만 _prefix
를 부여하면 중복 오류가 발생하지 않습니다.
_prefix
는 접두사가 되므로 다음과 같은 조작이 가능하게 된다.
# 頭に status_ を付与
> conversation.status_archived! # 更新(UPDATE)
> conversation.status_archived? # true
> conversation.status_active? # false
# 頭に comments_status_ を付与
> conversation.comments_status_active! # 更新(UPDATE)
> conversation.comments_status_active? # true
> conversation.comments_status_inactive? # false
# 接頭辞なしはエラーになる
> conversation.active?
Traceback (most recent call last):
1: from (irb):11
NoMethodError (undefined method `active?' for #<Conversation:0x00007ff78097c910>)
_suffix(접미사)
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: [:active, :archived], _suffix: true
enum comments_status: [:active, :inactive], _suffix: true
end
다음 _suffix
(접미사). 다음과 같은 조작이 가능해진다.
# お尻に _status を付与
> conversation.archived_status! # 更新(UPDATE)
> conversation.archived_status? # true
> conversation.active_status? # false
# お尻に _comments_status を付与
> conversation.active_comments_status! # 更新(UPDATE)
> conversation.active_comments_status? # true
> conversation.inactive_comments_status? # false
# 接尾辞なしはエラーになる
> conversation.active?
Traceback (most recent call last):
1: from (irb):11
NoMethodError (undefined method `active?' for #<Conversation:0x00007ff78097c910>)
맞춤 값
/app/models/conversation.rbclass Conversation < ActiveRecord::Base
enum status: [:active, :archived], _prefix: true
enum comments_status: [:active, :inactive], _prefix: :comments
end
comments_status
측만 _prefix: :comments
및 사용자 지정 값을 설정합니다.
이렇게 하면 접두사comments_status_
를 붙이기보다는 comments_
만으로 좋기 때문에 문자수가 줄어들어 의미도 이해하기 쉽다는 이점이 있다.
# 頭に comments_ を付与
> conversation.comments_active! # 更新(UPDATE)
> conversation.comments_active? # true
> conversation.comments_inactive? # false
요약
위의 실수 1, 2, 3은 실제로 내가 만난 내용입니다. 해보고 싶다.
좋은 controller는 좋은 model가 만든다. 좋은 model 은 좋은 enum 가 만든다
참고 링크
Ruby on Rails 5.1.6 > ActiveRecord::Enum
Change the World!> ActiveRecord::Enum 사용 및 중복 오류 방지
Qiita > Rails5에서 enum 정의한 열의 원래 값을 가져옵니다.
Reference
이 문제에 관하여(Rails5에서 enum을 사용할 때는 _prefix (접두사) _suffix (접미사)를 사용합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/emacs_hhkb/items/fce19f443e5770ad2e13
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class Conversation < ActiveRecord::Base
enum status: [:active, :archived], _prefix: true
enum comments_status: [:active, :inactive], _prefix: true
end
# 頭に status_ を付与
> conversation.status_archived! # 更新(UPDATE)
> conversation.status_archived? # true
> conversation.status_active? # false
# 頭に comments_status_ を付与
> conversation.comments_status_active! # 更新(UPDATE)
> conversation.comments_status_active? # true
> conversation.comments_status_inactive? # false
# 接頭辞なしはエラーになる
> conversation.active?
Traceback (most recent call last):
1: from (irb):11
NoMethodError (undefined method `active?' for #<Conversation:0x00007ff78097c910>)
class Conversation < ActiveRecord::Base
enum status: [:active, :archived], _suffix: true
enum comments_status: [:active, :inactive], _suffix: true
end
# お尻に _status を付与
> conversation.archived_status! # 更新(UPDATE)
> conversation.archived_status? # true
> conversation.active_status? # false
# お尻に _comments_status を付与
> conversation.active_comments_status! # 更新(UPDATE)
> conversation.active_comments_status? # true
> conversation.inactive_comments_status? # false
# 接尾辞なしはエラーになる
> conversation.active?
Traceback (most recent call last):
1: from (irb):11
NoMethodError (undefined method `active?' for #<Conversation:0x00007ff78097c910>)
/app/models/conversation.rb
class Conversation < ActiveRecord::Base
enum status: [:active, :archived], _prefix: true
enum comments_status: [:active, :inactive], _prefix: :comments
end
comments_status
측만 _prefix: :comments
및 사용자 지정 값을 설정합니다.이렇게 하면 접두사
comments_status_
를 붙이기보다는 comments_
만으로 좋기 때문에 문자수가 줄어들어 의미도 이해하기 쉽다는 이점이 있다.# 頭に comments_ を付与
> conversation.comments_active! # 更新(UPDATE)
> conversation.comments_active? # true
> conversation.comments_inactive? # false
요약
위의 실수 1, 2, 3은 실제로 내가 만난 내용입니다. 해보고 싶다.
좋은 controller는 좋은 model가 만든다. 좋은 model 은 좋은 enum 가 만든다
참고 링크
Ruby on Rails 5.1.6 > ActiveRecord::Enum
Change the World!> ActiveRecord::Enum 사용 및 중복 오류 방지
Qiita > Rails5에서 enum 정의한 열의 원래 값을 가져옵니다.
Reference
이 문제에 관하여(Rails5에서 enum을 사용할 때는 _prefix (접두사) _suffix (접미사)를 사용합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/emacs_hhkb/items/fce19f443e5770ad2e13텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)