当前位置: 首页 > news >正文

【ror学习笔记3】页面布局

1.ruby script/generate controller store index   创建控制器Store,其中包含action方法index,当调用一个控制器,又没有明确指定action,会默认调用index

2.编辑app/controllers/store_controller.rb,向模型类Product请求数据库表products


  
class StoreController < ApplicationController
def index
@products
= Product . find_products_for_sale
end
end

编辑app/models/product.rb,添加find_products_for_sale方法


  
class Product < ActiveRecord :: Base
validates_presence_of
: title ,: description ,: image_url
validates_numericality_of
: price
validates_uniqueness_of
: title
validates_format_of
: image_url ,
: with =>% r{\ . (gif | jpg | png)$}i ,
: message => " must be a URL for a GIF,JPG, or PNG image "
protected
def validate
errors
. add( : price , " should be at least 0.01 " ) if price . nil ?|| price < 0.01
end

def self
. find_products_for_sale
find(
: all ,: order => " title " )
end
end

3.编辑app/views/store/index.rhtml,编写视图模板


  
< h1 > Your Pragmatic Catalog </ h1 >
<% for product in @products - %>
< div class ="entry" >
< img src ="<%=product.image_url %>" />
< h3 > <% = h(product.title) %> < h3 >
<% = product.description %>
< div class ="price" > <% = number_to_currency(product.price) %> </ div >
<% = button_to " Add to Cart " ,:action => :add_to_cart,:id => product %>
</ div >
<% end %>

4.创建app/views/layout/store.rhtml,添加页面布局,如果在app/views/layout目录中创建了一个与某个控制器同名的模板文件,那么该控制器所渲染飞视图默认会使用此布局模板


  
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>

< html xmlns ="http://www.w3.org/1999/xhtml" xml:lang ="en" lang ="en" >
< head >
< title > Pragprog Books Online Store </ title >
<% = stylesheet_link_tag ' depot' ,:media=>"all"%>
</ head >
< body id = " store " >
< div id = " banner " >
< img src = " /images/logo.png " />
< % = @page_title || " Pragmatic Bookshelf " %>
</ div >
< div id ="columns" >
< div id ="side" >
< a href ="http://www...." > Home </ a >< br />
< a href ="http://www..../faq" > Question </ a >< br />
< a href ="http://www..../news" > News </ a >< br />
< a href ="http://www..../contact" > Contact </ a >< br />
</ div >
< div id ="main" >
<% = yield:layout %>
</ div >
</ div >
</ body >
</ html >

 

转载于:https://www.cnblogs.com/sherlcok/archive/2010/11/01/1866644.html

相关文章:

  • 数组04 - 零基础入门学习C语言26
  • 随手小记:都是反着的
  • 寄存器(CPU工作原理)06 - 零基础入门学习汇编语言11
  • 《抉择》
  • 创建从Java EE到.NET的事务桥梁(java和.net应该合并出一个新的产物)
  • 分享千亿物联网蛋糕 9股受益最大
  • Spring.Net框架介绍及基本配置(学习笔记一)
  • ARPG游戏DEMO
  • WP7 silverlight XNA 混合编程
  • 轻量级ORM开发系列:Model类相关信息的处理
  • 整理基础的CentOS常用命令
  • 左旋肉碱适合什么人群
  • Symantec / GuardianEdge
  • Oracle 查询表结构
  • Javascript中的文档模式-document.compatMode
  • [数据结构]链表的实现在PHP中
  • 【391天】每日项目总结系列128(2018.03.03)
  • Bootstrap JS插件Alert源码分析
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • JAVA并发编程--1.基础概念
  • Java到底能干嘛?
  • JS实现简单的MVC模式开发小游戏
  • Linux Process Manage
  • node 版本过低
  • Python学习之路13-记分
  • ReactNativeweexDeviceOne对比
  • Xmanager 远程桌面 CentOS 7
  • Yii源码解读-服务定位器(Service Locator)
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 读懂package.json -- 依赖管理
  • 分享几个不错的工具
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 关于Java中分层中遇到的一些问题
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 王永庆:技术创新改变教育未来
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​secrets --- 生成管理密码的安全随机数​
  • ​什么是bug?bug的源头在哪里?
  • #每天一道面试题# 什么是MySQL的回表查询
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (1)(1.13) SiK无线电高级配置(五)
  • (2)nginx 安装、启停
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (C#)获取字符编码的类
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (九)信息融合方式简介
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • .cfg\.dat\.mak(持续补充)
  • .htaccess配置重写url引擎