class Product < ActiveRecord::Base belongs_to :category named_scope :cheap, :conditions => { :price => 0..5 } named_scope :recent, lambda { |*args| {:conditions => ["released_at > ?", (args.first || 2.weeks.ago)]} } named_scope :visible, :include => :category, :conditions => { 'categories.hidden' => false } end
3. 使用嵌套屬性 Nested attributessql
當咱們能夠使用@user.account_setting這樣的屬性來獲取一個Model對應的關係Model時,咱們有機會「一鼓作氣」。就像下面:ruby
# controller中,注意咱們其實在這裏創建了: AccountSetting.new def new @user = User.new (:account_setting => AccountSetting.new) end def create @user = User.new(params[:user]) @user.save end # Model has_one :account_setting, :dependent => :destroy accepts_nested_attributes_for :account_setting # views <%= form_for(@user) do |f| %> ... <%= f. fields_for :account_setting do |a| %>
4. 快速migration:
script/generate migration AddRoleToUser role:string