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