命令行
rails routes
查看路由
rails generate resource_route Articles
生成路由
route resources :articles
sudo rails generate controller Articles
生成控制器
create app/controllers/articles_controller.rb
invoke erb
create app/views/articles
invoke helper
create app/helpers/articles_helper.rb
invoke assets
invoke coffee
create app/assets/javascripts/articles.coffee
invoke scss
create app/assets/stylesheets/articles.scss
rails generate controller Welcome index
生成控制器和方法
–skip-routes 不生成路由
rails generate controller Welcome index
create app/controllers/welcome_controller.rb
route get 'welcome/index'
invoke erb
create app/views/welcome
create app/views/welcome/index.html.erb
invoke helper
create app/helpers/welcome_helper.rb
invoke assets
invoke coffee
create app/assets/javascripts/welcome.coffee
invoke scss
create app/assets/stylesheets/welcome.scss
rails generate model Article title:string text:text
创建 Article 模型
invoke active_record
create db/migrate/20171209094255_create_articles.rb
create app/models/article.rb
rails generate model Comment commenter:string body:text article:references
生成一个关联Articles模型的模型
rails db:migrate RAILS_ENV=development
运行迁移,生成数据表,默认是development
rails db:rollback RAILS_ENV=development
运行回滚
cat rails generate migration AddPartNumberToProducts
创建一个空的迁移表
rails generate scaffold HighScore game:string score:integer
Rails 中的脚手架(scaffold )会生成资源所需的全部文件,包括模型、模型所用的迁移、处理模型的控制器、查看数据的视图,以及各部分的测试组件。
invoke active_record
create db/migrate/20130717151933_create_high_scores.rb
create app/models/high_score.rb
invoke test_unit
create test/models/high_score_test.rb
create test/fixtures/high_scores.yml
invoke resource_route
route resources :high_scores
invoke scaffold_controller
create app/controllers/high_scores_controller.rb
invoke erb
create app/views/high_scores
create app/views/high_scores/index.html.erb
create app/views/high_scores/edit.html.erb
create app/views/high_scores/show.html.erb
create app/views/high_scores/new.html.erb
create app/views/high_scores/_form.html.erb
invoke test_unit
create test/controllers/high_scores_controller_test.rb
invoke helper
create app/helpers/high_scores_helper.rb
invoke jbuilder
create app/views/high_scores/index.json.jbuilder
create app/views/high_scores/show.json.jbuilder
invoke assets
invoke coffee
create app/assets/javascripts/high_scores.coffee
invoke scss
create app/assets/stylesheets/high_scores.scss
invoke scss
identical app/assets/stylesheets/scaffolds.scss
链接
# 进入本控制器的index
<%= link_to 'Back', articles_path %>
# 进入articles控制器的index
<%= link_to 'My Blog', controller: 'articles',articles_path %>
# 进入new
<%= link_to 'New article', new_article_path %>
# 进入edit
<%= link_to 'Edit', edit_article_path(article) %>
# 进入删除
<%= link_to 'Destroy', article_path(article),
method: :delete,
data: { confirm: 'Are you sure?' } %>
form
# 连接本方法
<%= form_for :article do |f| %>
# 自动提交到post
<%= form_for :article, url: articles_path do |f| %>
验证
class Article < ApplicationRecord
# 一对多关联comment
has_many :comments
validates :title, presence: true,
length: { minimum: 5 }
end
渲染
# Ruby on Rails 2.3.5 返回一个字符串,而不渲染模板
render :text => 'This is a String'