创建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里使用了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容