创建rails页面的简单流程

我司前端大神,想了解rails页面相关的东西,顾有笔记如下。

  1. 添加路由
    rails将一个请求(localhost:4000/projects),通过route对应到相应的controller(ProjectsController)下的一个action(index)方法下。
    而路由的文件在config/routes.rb

     resources :products, only: [:index] do
      # ....
     end
    

    注意应resource一般应为复数
    添加完后,可以在命令行内执行 rake routes 会列出所有的路由。

  2. 生成controller
    rails有很多很好用的generator,可以生成相应的文件。我们可以使用generator生成controller。

    比如在console内执行 rails g controller projects
    会生成

      # 并不是所有文件都需要,选择添加到git
      app/assets/javascripts/projects.coffee
      app/assets/stylesheets/projects.scss
      app/views/projects/
      app/controllers/projects_controller.rb
      app/helpers/projects_helper.rb
      test/controllers/projects_controller_test.rb
    

    并不是所有文件都需要,比如projects_controller_test.rb为controller的测试文件,并不需要加入git内。

    rails的哲学是 convenient over configuration,既通过一些默认的设置,而达到开发的便利。比如一些文件的摆放和命名。

    比如ProductsController的index action默认对应views/projects/index.html.erb。

    这样做带来了开发上的便利,但也提升了理解的难度。

  3. 将变量“传”到view
    一般情况下,在controller,会通过方法,在后台拿到数据,并赋值给某个实例变量,这样,在view内,就能使用对应的变量。

    eg:

         def index
          @projects = Project.all
       end
    

    有些实例变量可能是在before_action里设置的

      class ProjectsController < ApplicationController
        before_action :set_service_type, only: [:show]
        def show
        end
    
        private
        def set_service_type
          @service_type = ServiceType.find params[:service_type_id]
        end
      end
    
    

    controller设置好实例变量后,就可以在对应的view里使用了。

你可能感兴趣的:(创建rails页面的简单流程)