国コードを1つ受け取って国名を返す、非常にシンプルなRubyメソッドで考えてみましょう。多くの人、特にRubyを始めて間もない方は以下のようなコードを書くでしょう。 class SampleClass def country_name(country_code:) mappings = { 'us' => 'USA', 'de' => 'Germany' } mappings[country_code] end end 対応付けをメソッドの外に移動することで、コードがより読みやすくなります。または別のメソッドに切り出しても構いません。定数化しておくとさらによくなりますが、定数をfreezeしておけばメモリ使用量も少し節約できるので完璧です。 class SampleClass COUNTRY_CODES_MAPPINGS = { 'us' => 'USA', 'de' => 'German
Strip#stripを使うだけでは半角スペースとか改行文字しか取り除けないので、before_validation時に全角スペースを取り除く方法を考える。 ちなみに Ruby は 2.1.2、Rails は 4.1.0 を前提に書いてます。 auto_strip_attributes の導入 auto_strip_attributesという gem があったのでとりあえず使ってみる。 Gemfile に書いて、bundle installする。 gem "auto_strip_attributes", "~> 2.0" こうやって使うっぽい。 class User < ActiveRecord::Base # Normal usage where " aaa bbb\t " changes to "aaa bbb" auto_strip_attributes :nick, :commen
まだまだエラーと格闘。 今度は環境変数エラー。 もう少しで動く気がする・・・ 環境 CentOS Linux release 7.1.1503 (Core) unicorn v5.0.1 Railsが環境変数エラーしてる Unicornのログ E, [2015-12-05T21:56:47.293845 #21753] ERROR -- : app error: Missing `secret_token` and `secret_key_base` for 'production' environment, set these values in `config/secrets.yml` (RuntimeError) 書かれてる通りsecrets.ymlを見てみると development: secret_key_base: 892ceafe0c4265c82c36aae8d37843c
validationにcontextを指定しておくと、vaidationを切り替えることができます。 例えば、ユーザー作成時とユーザープロフィール変更時にvalidationを切り替えたい時などに使えます。 with_options on: :registrations_new do |new_record| new_record.validates :email, confirmation: true new_record.validates :password, confirmation: true new_record.validates :first_name, presence: true new_record.validates :last_name, presence: true end controllerでsave(context: :registrations_new)
Active Record validation is a well-known and widely used functionality of Rails. Slightly lesser popular is Rails's ability to validate on custom context. If used properly, contextual validations can result in much cleaner code. To understand validation context, we will take example of a form which is submitted in multiple steps: 1class MultiStepForm < ActiveRecord::Base 2 validate :personal_info
I have two model as follows class User < ActiveRecord::Base validates_associated :account end class Account < ActiveRecord::Base belongs_to :user #----------------------------------Validations--Start------------------------- validates_length_of :unique_url, :within => 2..30 ,:message => "Should be atleast 3 characters long!" validates_uniqueness_of :unique_url ,:message => "Already Taken" validate
ActiveModel::Model is an excellent way to make objects behave like ActiveRecord. One potential use for this is if we want to make use of form data that doesn't necessarily persist to an object, but we want to keep our controllers clean. A great example can be found on this thoughtbot blog post from about a year ago. One thing that I think many have found lacking, however, is has_many and accepts_n
ActiveRecordに任意の属性を定義したり既存の属性を上書きしたりできるRails 5以降の標準機能です。 概要 MITライセンスに基いて翻訳・公開いたします。 英語APIドキュメント: ActiveRecord::Attributes::ClassMethods Railsバージョン: 7.0.5 ソース: rails/attributes.rb at 86fdb54da1c2dd83f8d7c13c9fe6bae0ae13a419 · rails/rails(2021/02/08) 参考: Rails 5のActive Record attributes APIについて y-yagiさんの良記事です。 2017/12/11: 初版公開(Rails 5.1.4) 2020/12/23: 細部を更新 2022/05/17: Rails 7.0.3に更新 ⚓ Rails5: Activ
Diese Website verwendet Cookies und ähnliche Technologien für Analyse- und Marketingzwecke. Durch Auswahl von Akzeptieren stimmen Sie der Nutzung zu, alternativ können Sie die Nutzung auch ablehnen. Details zur Verwendung Ihrer Daten finden Sie in unseren Datenschutzhinweisen, dort können Sie Ihre Einstellungen auch jederzeit anpassen. Wenn Sie Websites besuchen, können diese Daten in Ihrem Brows
はじめに こんにちは。KitchHikeエンジニアの小川です。 Webアプリケーション開発において、コードベースが大きくなってくると、よく問題になるものの一つが表示ロジックの重複ではないでしょうか。知らず知らずのうちにビューに同じようなロジックが増えて、コードの見通しが悪くなってくるのです。 KitchHikeのコードにもその兆候が見られはじめたので、対策として ViewModel パターンを取り入れています。このパターンを適用することで、表示ロジックを集約し、コードのメンテナンス性を向上させることができました。 ViewModel は、そんなに凝ったことをしているわけではないのですが、コードをすっきりさせる上ではかなり強力なパターンです。 今回はこの ViewModel について、実際の使い方を含めご紹介したいと思います。 ViewModelとは? 一言でいえばビューに関連するロジックを
このエントリで書いた内容は、ほぼ Growing Rails Applications in Practice の内容が元になっています。英語ですが、ここで挙げた内容以外にもコードを綺麗に保つテクニックが書かれており、かつページ数も少なく読みやすいです。コードを綺麗に保つのが好きな方は一読してみることをおすすめします。 はじめに Rails で fat model を避けるための方法は、7 Patterns to Refactor Fat ActiveRecord Models を始めとして、多くのやり方が存在します*1。 validation や callback は ActiveRecord(以下AR) を継承せずとも利用することができます。7 Patterns to Refactor Fat ActiveRecord Models の 「3. Extract Form Objects
RailsでAPIを作る時の手法として、 ActiveModel::Serializerを使ったものを紹介する。 インストール Gemfileに以下を記述し、bundle installを実行する。 gem 'active_model_serializers' Serializer用ファイルの作成 以下のコマンドにてSerialize用のファイルを作成する。 $ bundle exec rails g serializer モデル名 今回はUserモデルに対してのSerializer用のファイルを作成する。 $ bundle exec rails g serializer User これを実行すると、app/serializers/user_serializer.rbというファイルが生成される。 Serializerファイルの編集 以下のようにattributesで指定した値がJSONのレ
概要 はじめに params の中身を確認 params.require の中身を確認 params.require.permit の中身を確認 おまけ 配列のパラメータを受け取りたい場合 まとめ 概要 Rails 4 からストロングパラメータと言う新機能が導入されました。 具体的には require と permit と言うメソッドのことです。 Scaffold で Controller を作成する際にデフォルトで適用されるのですが、使い方がよく分からず、いつも削除していました。。 今回、require と permit の使い方を調べてまとめました。 はじめに 「名前」と「メールアドレス」を属性に持つ User モデルを Scaffold で作成してみます。 $ rails generate scaffold User name:string email:string すると、Cont
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く