`
black_star
  • 浏览: 33100 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ruby on rails(7)-- 创建一个页面模版

阅读更多
   创建一个页面模版,你可以很轻松的往里面填内容,而如果改动样式时,只要改动一个文件即可。rails 会在app/view/layout下面根据controller默认选中名字一样的layout。而我们的controller为store,因此rails会默认选中layout下的store.html.erb文件。因此,最简单的就是手动创建store.html.erb。这样,就能默认载入了。
<!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">
<head>
  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
  <title>Pragprog Books Online Store</title>
  <%= stylesheet_link_tag "depot",:media => "all" %>
</head>
<body
<div id="store">
    <div id="banner">
	<%=image_tag("logo.png") %>
	<%=@page_title || 'Pragmatic Bookself'%>
    </div>
	<div id="colums">
		<div id="side">
		    <a href="#">Home</a><br>
                       <a href="#">Questions</a><br>
		     <a href="#">News</a><br>
		      <a href="#">About</a><br>
		</div>
	        <div id="main">
	             <%=yield :layout %>
	             </div>
	</div> >
  </div>
</body>
</html>

<%=image_tag("logo.png") %>导入logo图片
<%=@page_title || 'Pragmatic Bookself'%>会在store_controller里面寻找@page_title 如果有且可以访问则输出它的值,否则 用后面取代
<%=yield :layout %> <%=yield%>相当于一个宏,:layout会默认选中和contoller名字一样的view文件夹下的index.html.erb。这里我们的controller为store。因此是view/store/index.html.erb/ 关于:layout的用法,共有5种layout .http://www.iteye.com/topic/106623详解
   然后编辑css。
    还有一个是对价格格式化输出number_to_currency(product.price) 11.1 -> $11.1 12344 -> $123,45
    图片弄好后,就是需要放到购物车里面了。此时需要一个连接。基本是一个连接图片,或者一个Button。 普通<a>产生的链接是采取get方式。基本上是对信息的取,没有交互。而rails里面button_to 包含一个form ,采取post形式,可以交互。因此采用button_to。一下是view/store/index.html.erb
<h1>Store#index</h1>
<p>Find me in app/views/store/index.html.erb</p>
<% for product in @products -%>
         <%= image_tag(product.image_url) %>
	<h3><%=h product.title %></h3>
	<%= product.description %>
	<span calss="price"><%= number_to_currency(product.price)%></span>
	<%=button_to 'Add to Cart',:action => :add_to_action,:id => product %>
<% end %>



:action => :add_to_action action为定义 :id主要是为了区别不同的商品,以后使用
网上搜东西的时候,搜到一个rails得视频网站,推荐http://railscasts.com/
  • 大小: 29.1 KB
分享到:
评论
2 楼 black_star 2009-11-26  
呵呵,笨鸟多飞飞
1 楼 supercode 2009-11-26  
楼主真勤奋

相关推荐

    c语言开发图书管理系统项目源码+数据+可运行程序

    c语言开发图书管理系统项目源码+数据+可运行程序 主要功能有:1、以管理员或读者不同身份注册账户。2、登录、找回密码、修改密码。3、管理员:图书入库,清除库存,统计书籍数量,统计读者借书情况,在馆书籍排序,读者排序。4、读者:查看个人借阅信息,借书,还书,按书名、作者、出版社检索图书,查询全部在馆图书。

    基于transformer的多模态脑肿瘤分割.zip

    本项目旨在利用Transformer模型实现多模态脑肿瘤分割。多模态脑肿瘤分割对于脑肿瘤的诊断和治疗具有重要意义。 我们采用Transformer模型,通过分析脑部MRI、CT、PET等不同模态的医学影像数据,实现对脑肿瘤区域的自动分割。项目使用的数据集包括公开的脑肿瘤影像数据集,如BRATS、Medical Segmentation Decathlon等,并进行了预处理,包括图像增强、分割和特征提取等。 在运行环境方面,我们使用Python编程语言,基于TensorFlow、PyTorch等深度学习框架进行开发。为了提高计算效率,我们还使用了GPU加速计算。此外,我们还采用了Docker容器技术,确保实验结果的可重复性。 项目完成后,将实现对多模态脑肿瘤的快速、准确分割,为脑肿瘤的诊断和治疗提供有力支持。同时,项目成果也可应用于其他医学影像分析领域。

    马尔文高浓度池说明书 High Concentration Cell (ZEN1010)

    马尔文高浓度池说明书 High Concentration Cell (ZEN1010)

    如何提高APP商业变现能力.docx

    如何提高APP商业变现能力.docx

    node-v12.20.0-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    R语言绘制SCI科研生存ROC曲线源代码.zip

    把input里面的数据替换成自己的数据,打开R,点Run,可以直接出图!文件适合有R语言基础的同学。

    高电压技术(第三版)课后习题答案

    高电压技术(第三版)课后习题答案

    Linux线程同步:深入理解与实践.pdf

    linux之线程同步一。 本文深入探讨了Linux线程同步的几种常见机制,并提供了代码示例。希望这些信息能够帮助你更好地理解和应用线程同步技术。在编写多线程程序时,请务必谨慎,确保线程安全。

    1999-2022年企业持续绿色创新水平数据.dta

    1999-2022年企业持续绿色创新水平数据.dta

    数据结构实验代码三个方法求最大公约数.rar

    数据结构实验代码

    机械设计无阀滤池-30Tsw16可编辑非常好的设计图纸100%好用.zip

    机械设计无阀滤池-30Tsw16可编辑非常好的设计图纸100%好用.zip

    机械设计RJ45安防线连接器焊锡机sw18可编辑非常好的设计图纸100%好用.zip

    机械设计RJ45安防线连接器焊锡机sw18可编辑非常好的设计图纸100%好用.zip

    SwiftUI嵌入UIKit(SwiftUI顺传值到UIKit)

    SwiftUI嵌入UIKit(SwiftUI顺传值到UIKit)

    node-v12.18.4-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    Python代码实现基于朴素贝叶斯算法的垃圾邮件分类(源码+全部数据)

    当处理垃圾邮件分类问题时朴素贝叶斯算法是一种经典且常用的方法。朴素贝叶斯算法基于贝叶斯定理特征条件独立性假设,能够高效地处理文本分类问题。 以下是一个使用Python实现基于朴素贝斯算法的垃圾邮件分类的示例: 1. 数据准备: 首先,需要准备训练数据集和测试数据集。训练数据集包含已标记的垃圾邮件和非垃圾邮件的文样本,通过这些样本进行模型训练。测试数据集用于评估模型的性能。 2. 数据预处理: 将文本样本转换为特征向量是朴素贝叶斯算法的关键步骤。可以使用词袋模型或者TF-IDF等方法将文本样本表示为向量。 3. 特征选择: 根据问题的具体特点,可以选择保留所有特征或者进行特征选择。常见的特征选择方法有卡方检验、互信息等。 4. 模型训练: 使用训练数据集训练朴素贝叶斯分类模型。常见的朴素贝叶斯分类器有多项式朴素贝叶斯、伯努利朴素贝叶斯和高斯朴素贝叶斯等。 5. 模型评估: 使用测试数据集评估模型的性能,常见的评估指标包括准确率、召回率、精确率和F1值等。 下面是一个简单的Python实现示例: ```python import numpy as np from

    httpsyy70958.com29875videoplayvid45958.m3u8..m3u

    httpsyy70958.com29875videoplayvid45958.m3u8..m3u

    Java 三维装箱代码示例

    在Java中,实现一个三维装箱(也称为三维背包问题)的算法通常涉及到组合优化和动态规划。这个问题是一个典型的优化问题,其中目标是在三个维度的限制下最大化价值的总和。下面是一个简单的Java代码示例,它使用动态规划来解决三维装箱问题。 请注意,这个代码只是一个简单的示例,它假设所有物品的第三个维度的大小都是1,并且没有给出如何回溯选择物品的完整逻辑。在实际应用中,三维装箱问题可能更加复杂,需要考虑所有三个维度的限制,并且可能需要更复杂的算法来解决。 此外,这个问题的解决方案可能需要根据具体问题的要求进行调整,例如物品是否可以分割、是否允许超过一个的物品等。如果你有特定的问题描述或者需要进一步的帮助,请提供更多的细节。

    BCSP-X 2024年活动文件,包含活动范围和模拟题

    北京市中小学信息学能力测评活动(BCSP-X)活动范围和模拟题目,包含基础知识题目和测试点题目

    商业模式画布——如何找到独特价值定位.docx

    商业模式画布——如何找到独特价值定位.docx

    SITOP 电源电源电源电源 20 6EP1 536-2AA00 操作手册

    SITOP 电源电源电源电源 20 6EP1 536-2AA00 操作手册

Global site tag (gtag.js) - Google Analytics