Rails

Rails で RESTful な URL にこだわらないと...

備忘録。 ダメなルーティングの臭い 名詞ではなく動詞が使われている resources/resourceよりもget/post/put/patch/deleteが使われている コントローラ内にscaffoldで生成される7つのアクション以外のアクション定義が多い resources/resourceのonlyオプショ…

Twitter がまだ Ruby on Rails を使っているらしい証拠を発見した。

ERBらしいですよ。変数名は reason と deadline ですって。

Rails for Beginners Vol.0 にサポートとして参加しました。

Rails for Biginners Vol.0 (ビギナー枠) にサポートエンジニアとして参加させてもらい、ついでに Rails 3 本ソムリエなトークをしました。Rails for Beginners Vol.0 (ビギナー枠) http://atnd.org/events/28948松本瞬さんによる初の試みでしたが、参加枠 1…

RailsCasts は Github リポジトリから git clone して自分で試しながらやるのがオススメ

Railscasts という素晴らしいサイトがあります。最新のRailsの情報が学べます。時間も長過ぎず、Podcast 、多様なファイル形式(mp4/m4v/webm/ogv)、 iPhone アプリに文字起こし版のASCIIcasts といたせりつくせりです。最近は、改訂版の revised 、月額の …

Rails で十分に活用されていなくてもったいない ActiveRecord::Relation のメソッド TOP 10

2013年12月2日更新: 参照されることが多いので Rails 4 の情報を訳注として追記しました。また、Rails 4 に関する情報は、 WEB+DB PRESS Vol.73 が非常に参考になるので、一読をおすすめします。この文章は Mitch Crowe 氏のブログより 2012年4月14日の記事…

なぜ私たちは NodeJS から Ruby on Rails に移行したのか

以下の文章は Targeter App Blog の記事を翻訳したものです。原文は 2012年5月12日 に書かれました。 Why we moved from NodeJS to RoR http://blog.targeterapp.com/post/22984987832/why-we-moved-from-nodejs-to-ror免責事項:この記事は NodeJS や Ruby …

Rails でよくある 5 つの間違い

以下の文章は、Mike Perham 氏のブログ記事を翻訳したものです。原文は2012年5月5日に公開されました。 Five Common Rails Mistakes http://www.mikeperham.com/2012/05/05/five-common-rails-mistakes/Railsをそれなりに仕事で使ってきて多くの Rails アプ…

Railsの誤解:CRUDはRESTじゃない!

以下はNick Sutterer氏が2010年10月28日に自身のブログに投稿した、"Rails Misapprehensions: CRUD is not REST! "の翻訳です。本人の許可を得て掲載します。 Rails Misapprehensions: CRUD is not REST! http://nicksda.apotomo.de/2010/10/rails-misappreh…

ネストしたresourceでform_forに与える引数

config/routes.rbが resources :hoges do resources :fugas end のようにネストしたresourceのとき、子となるfugaのみ作成/更新を行うフォームを書こうとして、少しハマったのでメモ。次のヘルパーメソッドでは、 new_hoge_fuga_path(@fuga.hoge, @fuga) edi…

Rails3の部分テンプレート内でxxx_pathというビューヘルパーが使用できない

Qiitaにメモしておいたんだけど、こちらにも書いておく。 http://qiita.com/items/812ビューテンプレート./app/tasks/index.html.erb から <% @tasks.each do |task| %> <%= render task %> <% end %> のようにして部分テンプレート./app/tasks/_task.html.e…

Rails 3.1でrake db:test:prepareがundefined methodのエラー

sugino-yasuhiro-no-MacBook-Air:point_blog suginoyasuhiro$ rake db:test:prepare rake aborted! undefined method `prerequisites' for nil:NilClass (See full trace by running task with --trace) StackOverflowにも挙っていたけど、対処方法がよくわ…

Rails 3で'_path_path'というundefined methodエラー

ものすごい小ネタ。結論からいうとタイポだったのだけど、 ActionView::Template::Error (undefined method `new_entry_path_path' for #<#<Class:... というエラーが出たので、'_path_path'ってなんだ?と思い、rake routesを見ても変なところないhelperに追加もしてないし、なんだろうなーと思っていたら、 <%= link_to '新規投稿', new_entry_path %> と書くべきところを、 <%= link_to '新規投稿', :new_entry_path %> とタイポしていた。エ…</class:...>

railsコマンドが急に起動しなくなった

railsコマンドが急に起動しなくなった。 $ rails c /opt/local/lib/ruby1.9/gems/1.9.1/gems/thor-0.14.6/lib/thor/ base.rb:407:in `class_eval': No such file or directory - getcwd (Errno::ENOENT) from /opt/local/lib/ruby1.9/gems/1.9.1/gems/thor-0…

Railsでintegerのカラムにシンボルを突っ込んじゃうと1になる

hoge_id = nil と書くはずが、 hoge_id = :nil とシンボルにしてしまっている箇所があり、これがinteger型のhoge_id属性としてDBに突っ込まれると、なんと、1になってしまうという。データ見たら全く関係のないid=1のレコードをJOINしていて驚きました。試し…

Rails3.1のMigrationでremove_columnメソッドの自動生成ができない

たいしたことではありませんが、Rails3.1でMigrationの記述方法が変わったからか、remove_columnメソッドの自動生成ができなくなっているようです。(本家サイトに別の方法があったりするのかもしれません。) 下のような書式でマイグレーションファイルを生…

ActiveRecordのvalidates :numericalityはnilを受け付けないらしい

Rails 3のActiveRecord(ActiveModelと言った方が正確なのでしょうか?)のvalidatesで整数のチェックをしようと、 class Foo < ActiveRecord::Base validates :bar, :numericality => { :only_integer => true } # 整数のみ end というふうに書いておき、ア…

Railsのモデルに複合一意制約を定義する方法、そしてうっかりハマる

Rails 3.0.4で複合一意制約を定義する方法は二通りあるようです。 1.ActiveRecordでモデルに一意制約を定義する 2.RDBMSで一意索引を作る 通常は両方実装するものと思われます。次のようなモデルで確認します。 class CreateMultiples < ActiveRecord::Migra…

Railsでモデル名にRubyのキーワードっぽいのを使うと面倒

モデルの名称にうっかりRubyのキーワードを使ってしまうとそのままでは動かなくなる場合があるので、注意です。 試しに、Aliasという名前の単純なモデルでscaffoldを作ってみます。 rails g scaffold alias name:string で、localhost:3000/aliases/にアクセ…