サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
murajun1978.hatenadiary.com
あけましておめでとうございます。 年内で仕事が納まらず、1日からコードをごりごり書いております。。。 さて、ActiveRecord::Callbacksはみなさんおなじみ before_saveとか良く使いますよね? でも、今回やりたい事はこういうの # app/models/comment.rb class Comment < ActiveRecord::Base after_publish :send_mail #publishメソッドのCallback def publish [...] end private def send_mail Notifier.comment_published(self).deliver_now end end そこでActiveModel::Callbacksです ActiveRecordのCallbacksを参考に => active_recor
Railsでグローバルデータを保持したいときに、Thread.currentを使えば簡単ですよね Thread.current[:current_user] = user Thread.current[:current_user] #=> user 僕も気軽に使ってましたが、最近こんな記事を見つけました。 Better globals with a tiny ActiveSupport module - Weissblog Thread.currentを使わない方が良い理由 キーがかぶってしまったらデータを上書きされるで! 構造化されてないで! ActiveSupport::PerThreadRegistryを使うと同じcurrent_userでもデータを担保できます class RequestRegistry extend ActiveSupport::PerThreadRegistry
__FILE__は実行ファイルのパス、カレントパスを取得できます。 __FILE__は実行ファイルのファイルパスを取得できます。 Railsではevalを多様しています。 コードを読んでるとこんなのをよく目にします。 class_eval <<-RUBY, __FILE__, __LINE__ ... end なんでだろう、ってことで調べてみました。 サンプルコード class Hello [:hello, :goodbye].each do |val| class_eval <<-RUBY def say_#{val} #{val} end RUBY end end 上のコードはNoMethodErrorエラーが発生します。 エラー内容はこんな感じ (eval):2:in `say_hello': undefined local variable or method `hello' fo
action_controllerの拡張gemを作成するときにrspecでテストする ユーザ認証のサンプルgemをTDDで作っていきましょう まずは、gemのひな形を作る $ bundle gem user_auth bundlerが1.9系なら以下のファイルが作成されてるはず ├── Gemfile ├── LICENSE.txt ├── README.md ├── Rakefile ├── bin │ ├── console │ └── setup ├── lib │ ├── user_auth │ │ └── version.rb │ └── user_auth.rb ├── spec │ ├── spec_helper.rb │ └── user_auth_spec.rb └── user_auth.gemspec さて、ここから本題です ゴールはこ
Ransackはとっても便利ですよねー さらっとしか使えてないので、ちょっと調べてみました eqは完全一致、contは中間一致 などなどとっても簡単に検索機能を実装できます そこでDateTime型のフィールドを検索したい場合、時分秒までは検索しないですよね? やりたいことはDateTime型のフィールドをDate型で検索したいので # in the model : ransacker :created_at do Arel::Nodes::SqlLiteral.new "date(items.created_at)" end SQLを確認してみる SELECT "projects".* FROM "projects" WHERE ((date(projects.created_at) >= '2014-11-03' AND date(projects.created_at) <= '20
class Post < ActiveRecord::Base has_many :comments end class Comment < ActiveRecord::Base belongs_to :post end pry(main)> Post.find(1) +----+-------------+------+-------------------------+-------------------------+ | id | title | body | created_at | updated_at | +----+-------------+------+-------------------------+-------------------------+ | 1 | sample post | | 2014-11-21 13:54:14 UTC | 2014-11-2
今日、Twitterで@netwillnetさんと@chiastoliteさんのツイートをみてやってみた @netwillnet time_ago_in_wordsすかね— Hiroyuki Morita (@chiastolite) 2014, 11月 17 Railsではtime_ago_in_wordsヘルパーが用意されています でも、この子はリアルタイムで更新されない(当たり前 クライアントサイドで、リアルタイムに経過時間をとってきたいですよね? jQueryプラグインにtimeagoってのがあります これを使ってみましょう jsファイルを... ダウンロードせずにgemを探します rails-timeago - GitHubを使ってみましょう 使い方はとっても簡単♪ # Gemfile gem 'rails-timeago', '~> 2.0' # app/assets/java
Bloggerからはてなへ移動しましたー٩( ‘ω’ )و 理由はなんとなくですw 最近、Dockerを使って遊んでます。 さくらのVPSを使っていたのですが、以下の理由からConoHaへ さくらは最低使用期間(3ヶ月)がある ConoHaはすべて初期費用が無料 ローカル接続対応 CoreOSのインストールがめちゃ簡単 初回特典で1500円分のクーポンがついてくる ConoHaへCoreOSをインストールして、Wordpressを動かしちゃおうー 注) ConoHaへのユーザ登録は済んでことが前提です CoreOSのイメージファイルをダウンロード Booting CoreOS from an ISO←ここからisoファイルをダウンロード 最新版を使いたいので、 Alpha版をダウンロードします ConoHaにVPSを追加 ConoHaにログインし、サービス⇒VPS⇒サーバーリストからVPS
さて、RSpec3.1がリリースされたので早速新機能をつかってみました。 Warnings flag .rspecファイルから--warningsがいなくなりました。 # .rspec --color --require spec_helper warningsを表示したい場合↓ # spec_helper.rb RSpec.configure do |config| config.warnings = true end have_attributes データをチェックするテストが簡単に書けるようになったね。 require 'spec_helper' describe 'have_attributes' do User = Struct.new(:name) specify 'nameはmurajun1978であること' do user = User.new('murajun1978')
このページを最初にブックマークしてみませんか?
『Murajun's Style』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く