def create
@book = Book.new(params[:book])
respond_to do |format|
if @book.save
…省略…
end
end
def create
@book = Book.new
@book.isbn = params[:book][:isbn]
@book.title = params[:book][:title]
…省略…
respond_to do |format|
if @book.save
…省略…
end
end
class User < ActiveRecord::Base attr_protected :roles end
@user = User.new({
:username => 'こっちは更新される',
:roles => 'ここは更新されない'
})
@user.roles = 'これなら、更新可能'
def update_all
count = Book.update_all('price = price * 1.05',['publish = ?','出版社A'])
render :text => "#{count}件更新!"
end
UPDATE "books" SET price = price * 1.05 WHERE (publish = '出版社A')
def update_all2
count = Book.update_all('price = price * 1.5',nil,{:order => 'published ASC', :limit => 3 })
render :text => "#{count}件更新!"
end
SELECT "books".* FROM "books" ORDER BY published ASC LIMIT 5
Book.destroy(params[:id])
SELECT "books".* FROM "books" WHERE "books"."id" = ? LIMIT 1[0m [["id", "IDの値"]] DELETE FROM "books" WHERE "books"."id" = ? [["id", IDの値]]
def destroy_all books = Book.destroy_all(['publish = ?','出版社A']) render :text => "削除完了" end
SELECT "books".* FROM "books" WHERE (publish = '出版社A') DELETE FROM "books" WHERE "books"."id" = ? [["id", IDの値1]] DELETE FROM "books" WHERE "books"."id" = ? [["id", IDの値2]]
rails g scaffold member name:string email:string lock_version:integer
class CreateMembers < ActiveRecord::Migration
def change
create_table :members do |t|
t.string :name
t.string :email
t.integer :lock_version, :default => 0
t.timestamps
end
end
end
rake db:migrate
<% hidden_field :lock, :lock_version %> <div class="field"> <%= f.label :name %><br /> <%= f.text_field :name %> </div>
| increment(attribute, by = 1) | まさに、インクリメントする |
| decrement(attribute, by = 1) | こっちはデクリメントね |
| new_record?() | 新規レコードチェック |
| persisted?() | 保存済みチェック |
| toggle(attribute) | ブール型のON/OFFの反転。これ、いいね! |
| touch(attribute = nil) | 日付型を現在時刻で更新 |
| changed() | 変更されたカラム名を取得 |
| changed?() | 変更されたかチェック |
| changed_attributes() | 変更された情報のハッシュ(カラム名 => 変更前の値)を返す |
| changes() | 変更された情報のハッシュ(カラム名 => [変更前,変更後])を返す。つうか、これ、すごいな。 |
| previous_changes() | 保存前の変更情報のハッシュ(カラム名 => [変更前,変更後])を返す |