scaffold是一个高速开发rails应用的代码框架。能够使用一条命令实现CRUD操作。

1: 创建一个应用

 rails new scaffoldapp
cd scaffoldapp
rails s

在浏览器中打开http://localhost:3000/

2: 创建一个名为blog的Scaffold

使用rails的scaffold创建模版。在此基础上进行添加、删除、改动、查询(CRUD)操作.

rails g scaffold blog title:string content:text picture:string

数据库迁移:

rake db:migrate

浏览器中訪问:http://localhost:3000/blogs

3:加入图片上传功能

能够參考我的上一篇博客rails中使用carrierwave上传图片

更新Gemfile

gem 'carrierwave'
bundle install
rails generate uploader Picture

改动/app/models/blog.rb,挂载picture属性

mount_uploader :picture, PictureUploader

打开 app/views/ideas/_form.html.erb ,找到这一行:

<%= f.text_field :picture %>

将它改成:

<%= f.file_field :picture %>

并将这一行:

<%= form_for(@blog) do |f| %>

改成:

<%= form_for(@blog,:html => {:multipart => true}) do |f| %>

打开 app/views/ideas/show.html.erb 并将

<%= @blog.picture %>

改为

<%= image_tag(@blog.picture_url, :width => 300) if @blog.picture.present?

%>

4.改动样式

打开/app/controllers/blogs_controller.rb

新建一个方法

 def list
@blogs = Blog.all
end

在/app/views/blogs/文件夹下新建list.html.erb

<div class="bgheader">
<h1>My Blog</h1>
</div> <% @blogs.each do |blog| %>
<h2 class="bgtitle"><%=link_to blog.title,blog %></h2>
<p><%= blog.content[0,150]%></p> <% end %>

改动/config/routes.rb,加入:

root 'blogs#list'

添加/app/assets/stylesheets/application.css

body{

    padding: 0px;
margin:0px;
width:1000px;
margin:0 auto;
}
.bgheader{
margin-top: -20px;
height: 80px;
background-color: #E9F2E8;
}
.bgheader h1{
color: #238A2A;
padding-top: 15px;
padding-left: 20px;
} .bgtitle a:link,.bgtitle a:visited{
color: #0080FF;
}
#blog_title{
width:300px;
height:20px;
}
#blog_content{
width:480px;
height:300px;
}
.bgcontainer{
width:600px;
}
.bgshow{
width:800px;
}

改动/app/views/blogs/show.html.erb

<div class="bgshow">
<p id="notice"><%= notice %></p> <h2>
<%= @blog.title %>
</h2>
<%= @blog.content %>
<hr>
<%= image_tag(@blog.picture_url, :width => 300) if @blog.picture.present? %>
<hr>
<%= link_to 'Edit', edit_blog_path(@blog) %> |
<%= link_to 'Back', blogs_path %>
</div>

效果

首页



详情页

rails手脚架(scaffold)功能的更多相关文章

  1. rails scaffold生成的crud显示自定义的列名

    1. 访问 rails i18n 插件的官方网站 ,查看信息http://guides.rubyonrails.org/i18n.html2. 在Gemfile 中加入  测试rails4.2.1不用 ...

  2. rails generate model/resource/scaffold的区别

    If you’re just learning Ruby on Rails, you may be confused as to when to generate individual models, ...

  3. Windows下: RubyMine + Ruby On Rails + mysql 搭建开发环境

    最近在接手一个手机项目.在搭建环境的过程中,遇到了一些问题,在下文中已做记录,并奉上个人的解决方案. 开发环境 win2003 ;  JetBrains RubyMine6.3.3 1.  下载最新版 ...

  4. 通过Ruby On Rails 框架来更好的理解MVC框架

    通过Ruby On Rails 框架来更好的理解MVC框架   1.背景    因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...

  5. Ruby on Raisl应用(一):在Rails上配置Mongoid+Mongodb

    一. 概述 最近考虑用ruby on rails 搭建一套Blog系统,前端考虑用Bootstrap,数据库用Mongodb.由于之前没有相关应用经验.先记录下整个项目过程. 现有资源: Mac 笔记 ...

  6. Ruby on Rails Tutorial 第二章 之 用户资源&MVC&REST

    说明:用户资源包括用户数据模型和这个模型相关的Web页面. 1.用户数据模型如下: 2.使用Rails内置的脚手架生成用户资源中,执行如下所示命令: $ rails generate scaffold ...

  7. ubuntu14.04使用rails连接mysql数据库

    rails自带的sqlite3各方面都不错,但是免费版缺少一个致命功能:加密码!虽说第三方有编译好的二进制版的加密版,但咱先不折腾鸟;直接上mysql吧. ubuntu安装mysql非常简单,先不聊; ...

  8. 如何为Rails作贡献:例增加rich_text field generators

    如何为Rails作贡献 例增加rich_text field generators 下载https://github.com/rails/rails 打开atom,在 rails/railties/l ...

  9. (Go rails)使用Rescue_from(ActiveSupport:Rescuable::ClassMethods)来解决404(ActiveRecord::RecordNotFound)❌

    https://gorails.com/episodes/handle-404-using-rescue_from?autoplay=1 我的git: https://github.com/chent ...

随机推荐

  1. html实现点击章节自动调到开头

    #转载请联系 原理是用id的值结合a链接实现锚点效果.比较简单,直接放一段代码好了. <!DOCTYPE html> <html lang="en"> &l ...

  2. [译]lambda表达式对 SAM (单个抽象方法类)type的处理方式

    在阅读Venkat Subramaniam的著作<Functional Programming in Java> 之后,方法模式和lambda完美结合让我印象深刻. 这种模式经常用作数据源 ...

  3. 一段js代码的分析

    function foo(a){ console.log(a+b); b=a+2; console.log(a+b); } foo(2); foo(3); var b=3; foo(4); 结果是: ...

  4. 经常用到的Eclipse快捷键(更新中....)

    alt+shift+s:弹出Source选项,用于生成get,set等方法. Ctrl+E:快速显示当前Editer的下拉列表 alt+shift+r:重命名 Ctrl+Shift+→/Ctrl+Sh ...

  5. 安卓长按交互onCreateContextMenu的简单 用法

    1.可在activity和fragment中使用. 2.使用方法 (1)注册 registerForContextMenu(btn);//btn是要实现交互的控件 (2)重写onCreateConte ...

  6. php 单文件上传

    php 单文件上传 通过 PHP,可以把文件上传到服务器. 创建一个文件上传表单 允许用户从表单上传文件是非常有用的. 请看下面这个供上传文件的 HTML 表单: Filename: 请留意如下有关此 ...

  7. 25,Spark Sort-Based Shuffle内幕彻底解密

    一:为什么需要Sort-Based Shuffle? 1,  Shuffle一般包含两个阶段任务: 第一部分:产生Shuffle数据的阶段(Map阶段,额外补充,需要实现ShuffleManager中 ...

  8. Spark GraphX宝刀出鞘,图文并茂研习图计算秘笈与熟练的掌握Scala语言【大数据Spark实战高手之路】

    Spark GraphX宝刀出鞘,图文并茂研习图计算秘笈 大数据的概念与应用,正随着智能手机.平板电脑的快速流行而日渐普及,大数据中图的并行化处理一直是一个非常热门的话题.图计算正在被广泛地应用于社交 ...

  9. UESTC 1599.wtmsb-STL(priority_queue)

    wtmsb Time Limit: 1000/100MS (Java/Others) Memory Limit: 131072/131072KB (Java/Others) 这天,AutSky_Jad ...

  10. UTC时间

    世界的每个地区都有自己的本地时间,在Internet及无线电通信时,时间的统一非常重要! 整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信中,为统一而普遍使用一个标准时间,称为通用 ...