rails
hashから要素を取り出すとき、nilだとエラーとなります。 [1] pry(main)> {}[:nanika] => nil [2] pry(main)> nil[:nanika] NoMethodError: undefined method `[]' for nil:NilClass そこでtryの登場ですが、hash#fetchは登録キーがないとエラーがはみ出てき…
[初心者向け] RubyやRailsでリファクタリングに使えそうなイディオムとか便利メソッドとか - Qiita [初心者向け] RubyやRailsでリファクタリングに使えそうなイディオムとか便利メソッドとか - Qiita
Hoge.rb .... has_many: fuga def foobar .... Fuga.rb ... belongs_to hoge delegate :foobar, to: :hoge ... とすると、 Fuga.foobar って感じなのができるようです。 delegate (Module) - APIdock
cookieから属性を消すことは重要です。 rails4ではcookieの内容は暗号化されてclient側に保存されていますが、 復号化せずにサーバーに送信すれば正常なcookieとして取り扱われるため、cookieファイルを盗まれるとなりすましが可能となります。 cookieに有効…
cookieのsecureをtrueにする。 trueにした属性は、https以外の通信でcookieを送信しなくなる。 httpsとhttpの行き来がある様なサイトは、セッションIDなどをsecure属性にしないとセッションハイジャックされる可能性がある。 secure属性と直接関係はないが、…
## Hoge.rb class Hoge < ActiveModel belongs_to :nanika alias_method :something, :nanika # Hoge.somethingをコールするとnanikaが拾えます。
before_filterを使うとコントローラーが綺麗になる、と。 めもめも Railsのコントローラーの仕事は何か? - Qiita Railsのコントローラーの仕事は何か? - Qiita
モデルをJSON形式で返す Model.all.as_json
中間テーブルは基本、多対多のモデルの関連をつくるために用いているので、 中間テーブル自体は意味のあるデータを持つことは少ない。 XyzToAbcというモデル名を見ると、「中間テーブル」だと推測できます。
Ruby - メソッドの実行をフックする方法 - Qiita Ruby - メソッドの実行をフックする方法 - Qiita Gemfile gem 'method_hooker' class Hoge def self.hoge1 .. end def pre_hoge p 'pre hoge has executed' end pre_execute_method :pre_hoge Hoge.hoge1 #=>…
レビューの指摘事項として「モデルではなくサービスに移動しなさい」というものがありました。 サービスっていうのが良くわからなかったので先生に聞いてみました。 Railsでサービスとフォームを導入してみる話 - assertInstanceOf('Engineer', $a_suenami) …
メソッドの長さは4〜5行しばりのプロジェクトもあるらしいです。 とのこと。
deviseの機能でこんなのあるんだ、っていう驚き。 after_update_path_for(resource) xxx_path(resource) end
def self.availables where(available: true) end scope :availables, -> { where(available: true) } scopeチェーンできるもの(ActiveRecord::Relationが返るもの)はscopeで、 Relation以外の戻り値を返すものは、クラスメソッドに整理しておけば、 新しく…
railsでupdateを実装してリリースしたところ、既存機能が動かなくなるバグを出してしまった。 原因はconfig/routes.rbでした。 config/routes.rb resources :foos, only: [:index, :create, :update] #<- ここにupdateを足しました。 patch 'foos/bar' route…
へぇ〜。 config/environments/production.rb config.logger = Logger.new("log/production.log", 5, 10 * 1024 * 1024) 10MBで5世代管理になるみたい。 こっちのほうが分かりやすい。 config.logger = Logger.new("log/production.log", 5, 10.megabytes) …
arel_tableは関係ないかもしれないけど、arel_tableで生成したSQLを投げた後はeachの状態を保管しておかないと、データが参照できなくなっちゃいました。 が、後で試してみたら再現しなかったです。 いつか再現したときのためにメモを残しておきます。 ×-> r…
squeelはArelTableのラッパーだから、簡単に書けるはず、とおもって、gemをワクテカしながらgemをインストールしたらbundle exec rails consoleが上がらなくなった。もちろんrails sも。 railsのバージョンを上げれば解決できるようです。 Gemfile gem 'sque…
ほんの少しですが、 arel_table[:column].count arel_table[:column].count.as('alias_name') arel_table[:column].minimum arel_table[:column].sum arel_table[:column].eq('nanika')
ActiveRecordで複雑なことをやろうとするとarel_tableだと伺いまして。 準備 rails -v Rails 4.1.0 ruby -v ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0] rails new test_app cd test_app rails g model yamada name:string rails g mode…
データ分析の集計上、自己結合しなきゃいけなかったので調べてみた。 以下の感じで、自己結合できます。 message.rb class Message < ActiveRecord::Base belongs_to :item has_many :own_join, -> class_name: Message, primary_key: 'item_id', foreign_ke…
sprocketsを使うと、拡張子の後ろから展開してくれる(アセットパイプライン) 以下の様な感じで書くと、railsで生成した値(@name)をcoffeescriptから参照できるみたいです。 xxx.js.coffee.erb alert(<%= @name %>)
Class.methods Class.methods.sort Class.methods.grep(/destroy/) おもいっきり参考にさせていただきました。 Rubyでメソッド一覧を確認するmethodsメソッドが便利 - paranitips Rubyでメソッド一覧を確認するmethodsメソッドが便利 - paranitips
require_treeするとstubしていないものは、コンパイルしてapplication.jsにまとまる app/assets/javascripts/application.js //= require_tree . stubするとapplication.jsにまとまらなくなる app/assets/javascripts/application.js //= stub foobar //= re…
俺の環境でRailsAdminが動かない。 他のメンバーの環境だと同じソースコードで動いているので、俺の環境がおかしいみたい。 http://localhost:3000/admin Routing Error No route matches [GET] "/admin" メモ Rails_Admin shows Routing Error "No route ma…
RailsAdminでエラー 読み込みディレクトリを追加したところ、エラーが発生したとのことでした。 sferik/rails_admin Circular dependency detected while autoloading constant · Issue #1697 · sferik/rails_admin · GitHub 読み込もうとしたDirオブジェク…
Don't forget about eager_load when extending autoload paths Don't forget about eager_load when extending autoload paths - Arkency Blog autoload_pathsとeager_load_pathsにxxx_xxx.rbが入っているディレクトリを指定するとrailsを起動しただけでモ…
アカウントの作成 http://www.chatwork.com/ja/ チャットワークAPIの申請 https://www.chatwork.com/service/packages/chatwork/subpackages/api/apply_beta.php チャットワークAPI http://developer.chatwork.com/ja/index.html gem asonas/chatwork-ruby C…
config/Settings.ymlを編集後bundle exec rails consoleしてもSettings.ymlの内容が更新されていない。 なんかキャッシュされている様な気がする。 lib/rails_config.rb @@_ran_once = false ...(省略) def self.setup yield self if @@_ran_once == false @…
bundle exec rails runner [ruby_file]