arailsdemo 13

Scaffold 生成 Announcement

每次使用 scaffold 时,它都会问我们是否‘重写’ scaffold.css, 这确实很烦人,让我们一起改变它!
config/application.rb, Terminal and app/models/announcement.rb

# application.rb
...
module Mysite
  class Application < Rails::Application
  ...
    config.generators do |g|
      g.stylesheets false
    end
  end
end
_______________________________

# Terminal

> rails g scaffold announcement message:text

> rake db:migrate
_______________________________

# announcement.rb

class Announcement < ActiveRecord::Base
  default_scope order("updated_at DESC")

  validates :message, :presence => true
end

编写 application 和 announcement 控制器代码:

app/controllers/application_controller.rb and announcements_controller.rb

# application_controller.rb

class ApplicationController < ActionController::Base 
  before_filter :get_announcements #

  ...
  protected

  def get_announcements
    @announcements ||= Announcement.limit(2) unless self.class == AnnouncementsController
  end
  ...
end
___________________________________

# announcements_controller.rb

class AnnouncementsController < ApplicationController
  before_filter :authorize, :except => :index
  ...
end

注意,我们的 announcement 位于 侧边栏,并且它不只是存在一个 controller 里。

你可能感兴趣的:(arailsdemo 13)