zoukankan      html  css  js  c++  java
  • ruby 第五次作业 part 1(分类、排序)

    movies_controller.rb

    class MoviesController < ApplicationController
    
      def movie_params
        params.require(:movie).permit(:title, :rating, :description, :release_date)
      end
    
      def show
        id = params[:id] # retrieve movie ID from URI route
        @movie = Movie.find(id) # look up movie by unique ID
        # will render app/views/movies/show.<extension> by default
      end
    
      def index
        @all_ratings = Array.new
        Movie.select(:rating).distinct.each do |movie|
          @all_ratings.push movie.rating
        end
        @ratings = params[:ratings] ? params[:ratings].keys : @all_ratings
        @ratings.delete("hidden")
        @movies = Movie.where(:rating => @ratings)
      end
    
      def sort
        index
        @order = params[:order]
        if !@order  #如果order参数不存在,默认增序
          @order = "increase"
        end
        
        @keyword = params[:keyword]
        if @keyword #是对哪个关键字排序
          @movies = @movies.order("#{@keyword}#{@order == 'increase' ? '' : ' DESC'}")
          @order = @order == "increase" ? "decrease" : "increase"
        end
        render 'movies/index'
      end
    
      def new
        # default: render 'new' template
      end
    
      def create
        @movie = Movie.create!(movie_params)
        flash[:notice] = "#{@movie.title} was successfully created."
        redirect_to movies_path
      end
    
      def edit
        @movie = Movie.find params[:id]
      end
    
      def update
        @movie = Movie.find params[:id]
        @movie.update_attributes!(movie_params)
        flash[:notice] = "#{@movie.title} was successfully updated."
        redirect_to movie_path(@movie)
      end
    
      def destroy
        @movie = Movie.find(params[:id])
        @movie.destroy
        flash[:notice] = "Movie '#{@movie.title}' deleted."
        redirect_to movies_path
      end
    end

    index.html.haml

    -#  This file is app/views/movies/index.html.haml
    %h1 All Movies
    = form_tag movies_path, :method => :get do
      Include:
      - @all_ratings.each do |rating|
        = rating
        = check_box_tag "ratings[#{rating}]", "1", (@ratings.include? rating)
      = check_box_tag "ratings[hidden]", "1", true, hidden:true
      = submit_tag 'Refresh'
    %table#movies
      %thead
        - sorted_css = @order ? " sorted-#{@order}" : ""
        - @order = @order ? @order : "increase"
        %tr
          %th{:class => "linked#{@keyword == 'title' ? sorted_css : ''}"}= link_to "Movie Title", movies_sort_path(:keyword => 'title', :order => @order, :ratings => params[:ratings])
          %th Rating
          %th{:class => "linked#{@keyword == 'release_date' ? sorted_css : ''}"}= link_to "Release Date", movies_sort_path(:keyword => 'release_date', :order => @order, :ratings => params[:ratings])
          %th More Info
      %tbody
        - @movies.each do |movie|
          %tr
            %td= movie.title 
            %td= movie.rating
            %td= movie.release_date
            %td= link_to "More about #{movie.title}", movie_path(movie)
    
    = link_to 'Add new movie', new_movie_path

    routes.rb

    Rails.application.routes.draw do
      get 'movies/sort', to: 'movies#sort' 
      
      resources :movies do
      end
    root
    'movies#index' end

    default.css添加以下样式

    table#movies th.linked
    {
      padding: 0px;  
    }
    
    table#movies th a {
      padding: 4px;
      display: block;
    }
    
    table#movies th a:hover {
      background-color:rgb(255, 125, 0);
      cursor: pointer;
    }
    
    table#movies th.sorted-increase {
      background-color:rgb(255, 165, 0);
    }
    
    table#movies th.sorted-decrease {
      background-color:rgb(255, 235, 0);
    }

    网址链接:http://ucas-jec-new.herokuapp.com/

  • 相关阅读:
    leetcode 78 子集
    leetcode 404 左叶子之和
    《数学有意思》28杠杆原理 29信息革命 30可信的数学
    《数学有意思》25中心极限定理 26混沌现象 27焦虑
    《数学有意思》22算术和几何 23统计学 24概率
    《数学有意思》19数学语言 20函数 21无理数
    《数学有意思》16归纳法 17因果关系 18物理学
    《数学有意思》13度量的本质 14度量单位 15科学也是一种模型
    《数学有意思》10思维工具 11选择合适的数学模型 12几何学
    《数学有意思》07公理是“公认的道理”吗 08什么是好的公里系统 09数学模型
  • 原文地址:https://www.cnblogs.com/jecyhw/p/4934823.html
Copyright © 2011-2022 走看看