木木木

Swift / Ruby on Railsなどの学習メモ。


Ruby on Rails

WebSocket-Rails の記事まとめ

WebSocketを使ってリアルタイムなアプリが作りたいと思って、色々調べております。 websocket-rails/websocket-railsgithub.com Twitter Streaming APIからツイート受け取ってPUSH通知するアプリをHerokuに websocket-railsで簡単なPush通知を実装する - Qii…

rails でsassを使う (scssではなく)

railsだとscssがデフォルトです。 sassの方が簡潔に書けそうなので、sassに乗り換えようと思います。 その設定のメモ。 設定方法 rails generate系コマンドで、scssファイルでなくsassファイルを生成するように設定します。 config/environments/development…

Rails4でaccepts_nested_attributes_for, allow_destroy: true

Rails4でaccepts_nested_attributes_for, allow_destroy: true なフォームつくっててハマった。 モデルの構成が、 Author has_one Book だとして、Strong Parameters を以下のようにする。 params.require(:author).permit([ book_attributes:[:title, :pric…

「パーフェクト Ruby on Rails」読んだいい感じだった

発売前から著者の方のオススメ記事とかを読んで、是非読みたいな〜と思っていた 「パーフェクト Ruby on Rails」。ついに読みました。 結論から言うと買って良かったです。 自分のRailsの知識レベルは、マイケル・ハートルのRails チュートリアル をひと通り…

Railsでページ遷移するとスクロール位置がおかしい場合の対処法

Railsのアプリで縦長のページに遷移する際に、 途中までスクロールされた状態で遷移することがあると思います。 調べてみるとRailsのTurbolinks はbody要素を全て入れ替えているだけなので、 スクロール位置も保持してしまい、 ページ遷移した際に、変な位置…

FactoryGirlでhas_oneモデルをテストする

userモデルが has_one :phone だとして。 factory :phone do number 00011112222 end factory :user do // fields after(:build) do |user| user.phone ||= FactoryGirl.build(:phone, user: user) end end 参考 http://stackoverflow.com/questions/1703442…

Railsで開発DBの内容をテストDBに反映させる

メモ。 db/development.sqlite3 をテストデータベース db/test.sqlite3に反映させるには、 rake test:prepare

Rails on Heroku でNoMethodError

herokuで heroku run rake db:migrate した後に、アプリを動かしていると、 今回のmigrateで追加したコラムを操作しようとすると、 NoMethodError とエラーを吐いて終了してしまうことがあった。 結論としては、rake db:migrate の後に、 heroku restart し…

Paperclipで指定した時だけprocessを省略する

herokuでpaperclipを使ったアプリケーションを運用していると、 S3との通信のもたつきなどで画像のアップロード/クロッピングの処理がタイムアウトしてしまうことがある。 (Heroku の Delayed jobは処理に15秒以上かかるとタイムアウトする) なので、クロッ…

Rails4で二重投稿防止

フォームのボタンが押されたらボタンをdisableにして、 二重投稿防止します。 簡単に実装できます。そう、Rails4ならね。 <%= form_for @user do |f| %> <%= f.submit "送信する", data: { disable_with: '送信中'} %> <% end %> ベンリ〜

Rails4 モデルのcreateの時だけvalidationしたいattribute

調べたら簡単でした。オプションに on: メソッド名をつけるだけ。 validates :name, presence: true, on: :create

Rails4でエラー Paperclip::Errors::MissingRequiredValidatorError

Paperclip::Errors::MissingRequiredValidatorError というエラーが出ました。 どうやらファイルタイプのバリデーションが必要なようです。 モデルに以下を記述すると通りました。 validates_attachment_content_type :attachment_name, content_type: ['vid…

Rails Adminをアンインストールする

Rails Admin使おうと思ってインストールしてみたけど、 Bootstrapのバージョンがコンフリクトしちゃってるのかうまく動かない。。 早いとこ諦めてアンインストール。 $ rails g migration dropRailsAdmins マイグレーションファイル *******_drop_rails_admi…

Paperclip + Jcrop + Railsでサムネイルを正方形に切り抜き

Paperclipで画像アップロードができるアプリケーションを作る際に、 サムネイルを正方形に切り抜きたい場合があります。 Paperclipは勝手にサムネイルを正方形に切り抜いてくれる機能がついてますが、 写真の中心を切り抜く、というものなので、 ユーザーに…

Rails + Devise on Herokuでエラー

エラーが出た。 最新のDeviseではproduction環境の時にシークレットキーが必要らしい。 設定ファイルでコメントアウトされている以下の行を追加すればOK。 config/initializers/devise.rb config.secret_key = '<シークレットキー>'

【Devise3.2 + Rails4】authentication_tokenでiOSからユーザー認証

iOSとRuby on Rails4 + Deviseで、 ユーザー認証機能を持ったiOSアプリを作ろうとしたら、 Deviseからauthentication tokenが消えていました。 どうやら3.1から消えたみたい? Deviseの開発チームのコメントによると、 このやり方はセキュアじゃないので、De…

paperclipを使ってmp4ファイルをアップロードする

Railsにファイル添付機能を追加するには、carrierwaveとpaperclipがいいみたい。 それぞれのgemの比較はこちらの記事が詳しいです。 Paperclip と CarrierWave を結構マジメに比較してみた 今回はS3との連携が簡単らしいなpaperclipを使って 動画アップロー…

「RailsとiPhoneではじめるアプリケーション開発」が動かない時のヘルプまとめ

今読んでる本「RailsとiPhoneではじめるアプリケーション開発」。 体系的にまとまっててとても良書だと思います。 ただ、サンプル通りにやってると、動かないことがしばしば。 タイプミスが多いのが残念です。 半年前の出版当時、最新版であったRails 3.2.13…

Ruby on Railsで、DBにも一意性を保証する

例えばnameとemailという属性を持ったmodelを作ったときに、 モデルの属性にvalidates :uniqueness を指定しても、 完全に一意性を保証したことにはならないそうです。 解決策としては、DBにインデックスを追加することで、 DB上のデータにも一意性を保証し…

Sporkの代わりにSpringを使う

テスト環境のプリロードgemとして有名なspork。 最近はspringってヤツの方が高速でイケてるらしいので導入してみました。 参考 Rails4時代の高速テスト環境 Rspec+Guard+FactoryGirl+Spring が、bundle exec guard で立ち上げようとすると、以下エラーが。 W…

Ruby on Railsでapplication.html.erbを適用したくないページの設定

Ruby on Railsではデフォルトでlayouts/application.html.erb の内容が テンプレートとして適応されますが、 「このページに限って application.html.erb を適用してくない」というページには 以下を記述で対応しますのメモ。 app/controllers/sample_contro…

Ruby on Rails のテストに関するメモ

RSpec 語源はRequest Spec。 Capybara カピバラ。 自然言語 (英語) に近い文法でテストを記述できる。 Cucumber キューカンバー。(きゅうり) こちらはオプション。 自然言語に近い文法でストーリーのように記述でき、専門知識のない人でも読むことができる、…

Ruby on Rails / Heroku のプロジェクトのデフォルト設定メモ

Ruby on Rails / Heroku のプロジェクトを作成する際のデフォルト設定メモ。 RailsTutorial を参考にさせていただきました。 使用するgem * RSpec * Capybara production環境 Herokuを使う DBはPostgreSQLを使う $ rails new app_name --skip-test-unit $ cd…

Ruby on Railsの.gitignoreファイルはコレで決まり

gitでリモートリポジトリを使っている際に、 不可視ファイルなどのコンフリクトが発生し、 泣き濡れる夜もあります。 なのでgitignoreファイルをテンプレ化しとくべきだなと思い、 自分用にメモしておきます。 Rails Tutorial のものが全て網羅してるっぽか…

【Ruby on RailsとDjango】プログラミング初学者はどちらを選ぶべきか

今までPythonのフルスタックフレームワーク、Djangoを 一年ほど使って開発をやってきましたが、 この度思い立ってRuby on Railsを勉強し始めてみました。 DjangoからRoRに移ってきた人の触りの感想などまとめてみました。 結論としては、よほど何か理由がな…

Simple Rails Navigator をSublime Text 3に導入

Sublime Text 3 は2014.1月時点でβ版ですが、 メインで使ってる人も多そうなので、自分もメインに切り替えました。 まだPackageで対応してないものもあるようです。 Railsの開発効率をアップするSimple Rails Navigator (SublimeRailsNav)も 対応してません…

【Rails でエラー】database configuration does not specify adapter

dotinstall見ながらやってたら早速つまずいた。 サーバ立ち上げたらブラウザに以下の文言が。 We're sorry, but something went wrong. If you are the application owner check the logs for more information. コンソール見てみる。 エラー内容 ActiveReco…

ここらで一発Ruby on Railも勉強してみる

ふと思い立って、Rubyを勉強してみることにしました。 まずは環境構築ということで、Marvericksでの構築例を探したら、 即見つかりました。 さすがRuby、日本のユーザーが多いので、 こういうドキュメントはすぐ見つかります。 Mavericks(MacOS X 10.9)でR…