対応するレコードがないフォームを使う場合、ActiveModelを使用することで、シンプルなビューを構築しつつ、処理はモデルにかけます。 しかし、ActiveModelのノウハウってあんまり落ちていません。 それなりに ActiveRecord に対する理解も必要で、難しいですね。 ハマったことなど共有していきたいと思います。 フォームからのデータは文字列ですが、ActiveRecord にはコラム自体には型があるため、型変換を自動的に行ってくれます。 これを無意識に使用していると ActiveModelではまります。 具体的には以下のテーブルがあったとします。 class CreateUsers < ActiveRecord::Migration def change create_table :users do |t| t.string :name t.integer :age t.b
class Blog has_many :posts attr_accessible :enable end class User has_many :posts attr_accessible :enable end class Post belongs_to :blog belongs_to :user end Blog(enable=true)もしくはUser(enable=true)に属するPostを取得したいとき MySQLで書くと、こんな感じ。 SELECT `posts`.* FROM `posts` LEFT JOIN `blogs` ON `blogs`.`id` = `posts`.`blog_id` LEFT JOIN `users` ON `users`.`id` = `posts`.`user_id` WHERE `blogs`.`enable` = 1 OR `
[4] pry(main)> Kantai.find(1) Kantai Load (0.4ms) SELECT `kantais`.* FROM `kantais` WHERE `kantais`.`id` = 1 LIMIT 1 ActiveRecord::SubclassNotFound: The single-table inheritance mechanism failed to locate the subclass: '戦艦'. This error is raised because the column 'type' is reserved for storing the class in case of inheritance. Please rename this column if you didn't intend it to be used for stori
最近、rubyでsinatraにハマってます。 で、ormは、sequelを使っていたのだが、勉強がてらactiverecord使ったらはまったはまった。 migrate機能を使う為に sinatra-activerecord を使ったのだが、ConnectionNotEstablished連発。 $ bundle exec rake db:migrate rake aborted! ActiveRecord::ConnectionNotEstablished /~/src/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:546:in `retrieve_connection' 参考記事:SinatraからAc
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く