Railsでincludesメソッドを使ってjoinする場合はActiveRecordのjoinsメソッドを使います。 User.includes(:photos) で絞り込み条件がある場合は、例えば以下みたいに記述します。 now = Time.zone.now.at_beginning_of_day User.includes(:photos)where(phot…
通常の場合ActiveRecordのsaveメソッドの戻り値はtrue/falseですが、そうでなく更新結果のオブジェクトを返したい場合以下のように記述するとできます user = User.find(1) user.tap(&:save)
rails4.2のbeta2が出ましたね。 以前かいたActiveJobについて、修正があったので改めて記事を書きました。ActiveJobとはRails4.2から追加された仕組みで、delayed_jobやresqueなどのキューイングを行うgemを同じインターフェースで使えるようにしたものです…
先日のRubyKaigi2014で紹介されたstackprofという解析ツールがあったので、試しに使ってみた。 設定は簡単で gem install 'stackprof' で入ります。Railsで使う場合はGemfileにセットしても良いかもしれません。 書いたらbundle installを実行。以上で設定は…
mrubyにはcrubyでいうirbのようなものがあります。それがmirbです。これを使うと色々試せます。 ので、これで少しmrubyを実行してみました。 class Hoge def hello puts 'hello' end end これは普通に動きます。 p Hoge.ancestors => [Hoge, Object, Kernel,…
gemのインストールが出来なかったので、Gemfileに以下のように記述してインストールをしてみました。 gem 'hypermicrodata', git: 'git@github.com:tkawa/hypermicrodata.git' これでbundle installでgemのインストールは完了です。 早速使ってみようと思い…
個人的な研究でAPIの実装をしようと思い、先日のRubykaigiで紹介されたhypermicrodataを使ってみようと思いました。これはJSONを返すというよりか、HTMLをパースして返すAPIの新しい方式(?)の提案のように感じ実際に自分でも色々動かしながら色々感じてみた…
今年のrubykaigiはmrubyの話題が結構あったと感じました。LTとかでもmrubyネタが幾つかあったと思います。ので、久しぶりにmrubyをもう一回いじってみようと思います。mrubyは組み込みRubyと言われ、CRubyに比べライトなものになっています。インストールに…
MRuby as Development Platform for Payments CloudWalk payments. 端末の問題tか色々あって悪夢だけど、CloudWalk使うといいよ。簡単に使えるしということかな。 今はwebのIDEがあって、それを使って導入が簡単に??? 開発者にも優しい作り。Mobile First…
Ruby Kaigiのメモ。 走り書きなので、間違いあるかも。 適宜修正します。Symbol GC Symbolについての話から。Rubyは皆さんを飽きさせないために、落とし穴沢山。Symbolを沢山生成することでメモリ圧迫する脆弱性がある。 ScalaやSmallTalkにもSymbolがある。…
Rails4.2から追加されるActiveRecordの機能にAdequateRecordなるものがあります。 で、これは何かなと見ているとここに記事が書いてあります。ここを見るとfindメソッドやfind_byメソッド時にキャッシュされるから、処理スピードが上がるよという機能と思わ…
最近rspecのバージョンを3.0.0.beta1から3.1にアップグレードしようと思っているのですが、ちょっと手間取ってしまっています。 ちょっと原因が分かったら色々纏めたいと思っています。で、今日の記事はrspec繋がりで、書き方についてです。今後書き方はここ…
Rails4.2の最新機能のActiveJobを使おうと思い、少し調べてみました $gem install rails --version '~>4.2.0.beta1'このActiveJobは4.2から新たに追加されるキューイングのフレームワークです。 何か動かしながらと思い、サンプルプロジェクト作成。 $ rails…
このブログからのコピーです。何かの時にパッと見れるように。Status Code Status Message Symbol 1xx Informational 100 Continue :continue 101 Switching Protocols :switching_protocols 102 Processing :processing 2xx Success 200 OK :ok 201 Created…
先日ブログでver1.0にしてからfacebookの友達の数を取得するようにしていましたが、会社の同僚の方から「これで出来るよ」と教えてもらったので、再度書きます。修正方法はズバリ @api = Koala::Facebook::API.new('ACCESS_TOKEN') p @api.get_object('me') …
友達が全件取れないのでおかしいと思ったら、Ver2.0からそのアプリでfacebookログインしている友達の数に仕様が変わったらしい。 なので、本当の意味で友達の数を取得したいのであればv1.0を使うようにしないと駄目。でコードで以下のようにkoalaが使うapiの…
facebookログインはomniauth_facebookとかよく使いますが、facebook内の情報を扱う時に何を使うか、今まであまりちゃんと見てませんでした。 で、先日業務でkoalaを使ったのですが、これは簡単で良いですね。1.インストールはGemfileに追加してbundle instal…
前回の記事で検索出来るようになったが、ヒットして欲しい物がヒットしない。 例えば「abcdef」というタイトルがあるものを検索するときに「abc」でヒットして欲しいが ヒットしない。何がまずいのか、、、調査中ー。追記:2014/08/27 取りあえずHerokuのadd…
今回検索用DBは考えた末にelasticsearchを使う事にしました。会社でも使われだしていて、何よりもHerokuでelasticsearchのAddOnが複数あったからです。mroongaをやるには結構大変そうだったので、これは別の機会に・・・。で使うライブラリですが、昔やった…
まずRailsもActiveModelを使います。コードは以下のような感じです class SearchMovie include ActiveModel::Model attr_accessor :keyword validates :keyword, length: { within: 3..20, too_long: '検索文字が長過ぎます', too_short: '検索文字が身近す…
ふとした時に忘れてしまっていたので、メモとして残すコミットを取り消したい場合 git reset --soft [コミットのHash値] git reset --hard[コミットのHash値]
前から使って入るがgithubの個人プロジェクトの各機能をpivotaltrackerを使って管理するようにしています。将来的にはこれをもっとメインで使うように会社でもしていければとおもっています。 で、ソース管理はgithubなので、このgithubとpivotaltrackerを連…
Railsのroutingでは、resourceを考えないといけません。URLもそれに対応していきます。 例えばblogというresourceに対してcommentというresourceが複数ある場合だとcong/routes.rbでは resources :blog do resources :comments end のように書きます。更にna…
テーブルのあるカラムの値が更新された時だけ処理をしたいという場合があると思います。その場合、以下のように[カラム名]_wasで変更前の値がとれます。 class Test < ActiveRecord::Base STATUS_SLEEP = 'sleep' STATUS_ACTIVE = 'active' after_update do …
テストを書くとpublicのメソッドだけでなく、privateについても書きたくなる事が暫しあります。 javaの場合だとリフレクションを使ってできますが、rubyの場合、どうするのかなと思って調べたらそこはsendメソッドを使えば出来るとあり、あー確かにそうだと…
railsではユーザ毎にアクセス件を設定したい場合はpunditというgemをよく使います。 導入は簡単です。 gem "pundit"bundle install続いてgeneratorをつかってpunditで使うクラスを生成します。rails g pundit:installこれでapp/policies/application_policy.…
railsの中身をみてみようと思い、まずはappフォルダなどrailsの各フォルダを読み込む処理をしているところはどこか色々みてみた まずはrails/railties/lib/rails/engine/configuration.rbのpathsメソッドに書いてあった。 def paths @paths ||= begin paths …
githubのSSLエラーが出てたので、証明書をバシバシ消していたらgithubだけでなくfacebookも駄目になって凄く焦った。 その時にここのブログを見つけて同じように証明書をダウンロードして何とか解決。 いやー、危なかった。。。
railsでちゃんとディレクトリにパスが通っているか確認したい場合「ActiveSupport::Dependencies.autoload_paths」を使う確認できます。 p ActiveSupport::Dependencies.autoload_paths この1行を追加すると、どこがロードされているのか確認できます。 rail…
全文検索を行う処理は以下のように書いてます。まだ絞り込み検索書いてなくてデータ登録と取得の部分の一部ですけど。 require 'groonga' module Searchable extend ActiveSupport::Concern included do end def self.add(path = [DBファイルのパス], table_…