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}]", "", (@ratings.include? rating)
= check_box_tag "ratings[hidden]", "", 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/

ruby 第五次作业 part 1(分类、排序)的更多相关文章

  1. C语言第五次作业——循环结构

    C语言程序设计第五次作业--循环结构(1) (一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增 ...

  2. 第五次作业——Alpha项目测试

    第五次作业——Alpha项目测试 格式描述: 这个作业属于哪个课程 2019秋软工17级系统分析与设计 这个作业要求在哪里 作业要求 团队名称 杨荣模杰和他的佶祥虎 这个作业的目标 测试其他组项目并写 ...

  3. 耿丹CS16-2班第五次作业汇总

    Deadline: 2016-10-26 23:59 作业内容 实验4-1 求1到20的阶乘的和,其中求阶乘用函数完成. 实验4-2 写一个判素数的函数,在主函数输入一个整数,输出其是否是素数的信息. ...

  4. C 语言学习 第五次作业总结

    第五次作业,主要学习和复习的是几种循环结构的使用. 在前一次的课堂上,同学们已经学习了分支语句的使用.分支语句和循环语句配合使用,就可以写出更多的,逻辑功能丰富的代码了. 逻辑功能的丰富,也意味着学习 ...

  5. 17秋 软件工程 团队第五次作业 Alpha

    题目:团队作业--Alpha冲刺 17秋 软件工程 团队第五次作业 Alpha 12次Scrum 第一次Scrum 第二次Scrum 第三次Scrum 第四次Scrum 第五次Scrum 第六次Scr ...

  6. C语言基础课第五次作业

    PTA第五次作业 7-2 统计一行文本中的单词个数 一.程序代码 #include<stdio.h> int main(void) { ]; ,word=; char c; gets(st ...

  7. 17秋 软件工程 团队第五次作业 Alpha Scrum1

    题目:团队作业--Alpha冲刺 17秋 软件工程 团队第五次作业 Alpha Scrum1 各个成员在 Alpha 阶段认领的任务 伟航:督促和监督团队进度,协调组内合作 港晨:APP前端页面编写: ...

  8. 17秋 软件工程 团队第五次作业 Alpha Scrum2

    17秋 软件工程 团队第五次作业 Alpha Scrum2 今日完成的任务 杰麟:Java后端的学习: 世强:登录和注册接口编写: 港晨:完成数据库表的设计: 树民.陈翔:完成超级管理员后端框架. 其 ...

  9. 17秋 软件工程 团队第五次作业 Alpha Scrum3

    17秋 软件工程 团队第五次作业 Alpha Scrum3 今日完成的任务 杰麟:java后端学习: 世强:Android的部门基础信息模块的信息显示和对接后台: 港晨:后台管理登陆界面ui设计: 树 ...

随机推荐

  1. 上帝造题的七分钟2/花神游历各国/GSS4 线段树维护区间开方 By cellur925

    题目传送门 或者 另一个传送门 询问区间和都好说.但是开方?? 其实是这样的,一个数(1e9)以内连续开方6次就会变成1,于是我们就可在开方操作上进行暴力修改.暴力修改的意思其实也就是找到叶子节点进行 ...

  2. centos7静态网络配置

    centos7静态网络配置 cd /etc/sysconfig/network-scripts 找到当前网卡名字 vim ifcfg-ens33 TYPE="Ethernet" # ...

  3. [Usaco2005]Part Acquisition

    Description The cows have been sent on a mission through space to acquire a new milking machine for ...

  4. java的构造方法 this 重载

    this1.隐含的局部变量在方法中指向调用该方法的对象()使用:当成员变量与局部变量同名的时候,通过this说明哪一个是成员变量.(this指向的是成员变量) 2.作为当前类的构造方法名存在作用:在构 ...

  5. 最简单的struts实例介绍

    struts2环境配置   struts2框架,大多数框架都在使用.由于工作需要,开始做Java项目.先学个struts2. 一.下载struts2 有好多版本,我下载的是struts-2.2.1.1 ...

  6. JUnit单元测试&注解

    ①测试方法上必须使用@Test进行修饰 ②测试方法必须使用public void 进行修饰,不能带任何的参数 ③新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开 ④测试类所在的包 ...

  7. ADO.net增删改的使用

    添加数据 -------------------------------------------------- //让用户输入要添加的内容 Console.WriteLine("请输入要添加 ...

  8. 完美单例宏定义(兼容ARC和MRC),项目中可以直接使用

     单例模式: 1.永远只分配一块内存来创建对象 2.提供一个类方法, 返回内部唯一的一个对象(一个实例) 3.最好保证init方法也只初始化一次 写一个宏定义文件,传入宏定义函数名,自动生成符合类名的 ...

  9. iOS Programming Camera 1

     iOS Programming Camera  1 1 Displaying Images and UIImageView 1.1  put an instance of UIImageView o ...

  10. 新奇:(nodejs兄弟)用HTML + FLASH +JS 也可以写桌面EXE。

    首先看下面这张图片,下面的所有界面都是用html代码实现的. 编程IDE:vb6.0 使用控件:WEBBROWSER 原理:使用olelib 让程序继承:IDocHostUIHandler 和 ICu ...