rails手脚架(scaffold)功能
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)功能的更多相关文章
- rails scaffold生成的crud显示自定义的列名
1. 访问 rails i18n 插件的官方网站 ,查看信息http://guides.rubyonrails.org/i18n.html2. 在Gemfile 中加入 测试rails4.2.1不用 ...
- rails generate model/resource/scaffold的区别
If you’re just learning Ruby on Rails, you may be confused as to when to generate individual models, ...
- Windows下: RubyMine + Ruby On Rails + mysql 搭建开发环境
最近在接手一个手机项目.在搭建环境的过程中,遇到了一些问题,在下文中已做记录,并奉上个人的解决方案. 开发环境 win2003 ; JetBrains RubyMine6.3.3 1. 下载最新版 ...
- 通过Ruby On Rails 框架来更好的理解MVC框架
通过Ruby On Rails 框架来更好的理解MVC框架 1.背景 因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...
- Ruby on Raisl应用(一):在Rails上配置Mongoid+Mongodb
一. 概述 最近考虑用ruby on rails 搭建一套Blog系统,前端考虑用Bootstrap,数据库用Mongodb.由于之前没有相关应用经验.先记录下整个项目过程. 现有资源: Mac 笔记 ...
- Ruby on Rails Tutorial 第二章 之 用户资源&MVC&REST
说明:用户资源包括用户数据模型和这个模型相关的Web页面. 1.用户数据模型如下: 2.使用Rails内置的脚手架生成用户资源中,执行如下所示命令: $ rails generate scaffold ...
- ubuntu14.04使用rails连接mysql数据库
rails自带的sqlite3各方面都不错,但是免费版缺少一个致命功能:加密码!虽说第三方有编译好的二进制版的加密版,但咱先不折腾鸟;直接上mysql吧. ubuntu安装mysql非常简单,先不聊; ...
- 如何为Rails作贡献:例增加rich_text field generators
如何为Rails作贡献 例增加rich_text field generators 下载https://github.com/rails/rails 打开atom,在 rails/railties/l ...
- (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 ...
随机推荐
- Selenium2+python自动化49-判断文本(text_to_be_present_in_element)【转载】
前言 在做结果判断的时候,经常想判断某个元素中是否存在指定的文本,如登录后判断页面中是账号是否是该用户的用户名. 在前面的登录案例中,写了一个简单的方法,但不是公用的,在EC模块有个方法是可以专门用来 ...
- mimikatz-域密码获取神器
mimikatz是一个法国人写的轻量级调试器.出众之处在于其可以直接从 lsass.exe 里猎取windows处于active状态账号明文密码,非常强大. 在网上找了一些相关的文章自己的一点总结吧 ...
- requests库使用socks5代理
备查: #!usr/bin/env python # coding=utf-8 import requests proxies = {'https': 'https://127.0.0.1:1080' ...
- Codeforces Round #394 (Div. 2) E. Dasha and Puzzle(分形)
E. Dasha and Puzzle time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- 8、Flask实战第8天:add_url_rule和app.route原理
之前我们使用@app.route这个装饰器来把视图函数和url绑定 @app.route('/') def hell_world(): return 'hello world' 而且我们可以通过url ...
- redis踩坑记
本来打算给一批主库做从库,用来读取数据,还不想碰主库数据. 主库redis2.8.12,从库一开始没注意,docker了一个3.1的,结果slaveof之后命令不兼容,下了一个2.8的(2.8.23好 ...
- redis命令行清缓存
任务管理器-服务-redis 右击打开详细信息--右击打开文件位置 在这个位置cmd 输入命令redis-cli 在输入命令:flushall 出现ok即清除缓存成功
- Word里如何打出带有上下横杠的大写字母i
换成新罗马就行了.
- 直接拿来用!最火的iOS开源项目(二)
每一次的改变总意味着新的开始.”这句话用在iOS上可谓是再合适不过的了.GitHub上的iOS开源项目数不胜数,iOS每一次的改变,总会引发iOS开源项目的演变,从iOS 1.x到如今的iOS 7,有 ...
- ztree jquery 树 控件
插件地址:http://www.ztree.me 数据:[{"id":1,"pId":-1,"name":"根目录"}, ...