if文のもっと良い書き方
現在、Railsでバリデーションメソッドを実装しているのですが、
我ながら書いていて「これってイケてないのは・・・?」というコードを書いています。
rb
1user_auth = UserAuth.find_by(user_id: self.user.id) 2if user_auth.present? 3 if user_auth.status == 0 4 errors[:user_auth] << I18n.t('validate.not_auth_user') 5 end 6else 7 errors[:user_auth] << I18n.t('validate.not_auth_user') 8end
Userモデルとは別でUserAuthという認証情報を管理しているモデルがあり、
UserAuthはユーザが認証を申請するとレコードが作成され、管理者側でその申請を承認すると
user_auth.statusは0から1に切り替わります。
上記のバリデーションで、ユーザ認証が済んでいないユーザに対してバリデーションをかけています。
ifのネストが深い点、errorsの追加の行が二つ存在する点が可読性を損ねている気がしているのですが、
もっといい書き方がありましたら、ご教示いただければ嬉しいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/06 03:14