Skip to content

Latest commit

 

History

History
60 lines (45 loc) · 1.72 KB

basic.md

File metadata and controls

60 lines (45 loc) · 1.72 KB

生成控制器时 控制器的开头字母大写

$ bin/rails generate controller Welcome index

控制器复数根据语义,如下管理文章使用复数

$ bin/rails generate controller Articles

生成的代码类名是复数

class ArticlesController < ApplicationController

end

创建模型开头字母大写,用的是单数

 bin/rails generate model Article title:string text:text

覆盖命名约定语法如下,这时就需要手动创建需要的my_products表,如果没有对应模型的表

class Product < ApplicationRecord
  self.table_name = "my_products"
end

还可以使用 ActiveRecord::Base.primary_key= 方法指定表的主键 如果没有对应列,手动添加 alter table 'products' add product_id int class Product < ApplicationRecord self.primary_key = "product_id" end

改变表结构和告知rails如何回滚表结构 1 运行 rake db:migrate 将name字段改为text类型, 2 运行 rake db:rollback 将字段name改回string

  class ChangeProductsName < ActiveRecord::Migration[5.1]
    def change
      reversible do |dir|
        change_table :products do |t|
          dir.up   { t.change :name, :text } # 将name字段更新为text
          dir.down { t.change :name, :string } #如果不喜欢,将name字段改回string类型
        end
      end
    end
  end

或者用分开的 up 和 down方法

class ChangeProductsPrice < ActiveRecord::Migration[5.0]
  def up
    change_table :products do |t|
      t.change :price, :string
    end
  end

  def down
    change_table :products do |t|
      t.change :price, :integer
    end
  end
end