美文网首页
创建rails页面的简单流程

创建rails页面的简单流程

作者: 我要走多远 | 来源:发表于2015-08-29 16:43 被阅读590次

    我司前端大神,想了解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页面的简单流程

          本文链接:https://www.haomeiwen.com/subject/eyikcttx.html