Web开发敏捷之道Rails(笔记三)

本文介绍了Rails应用中布局模板的使用方法及控制器与模型之间的数据交互过程。通过具体实例展示了如何在视图中引用样式表,以及如何在控制器中调用模型的方法来获取数据,并在视图中展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    所有脚手架生成的应用程序都会默认使用public/stylesheets目录下的scaffold.css样式表。

1:布局模板

         在views目录下的 文件夹名称与 layouts目录下的文件名相同,其views目录下的 文件夹里面的文件使用其模板。

       即:在app/views/layouts目录中创建了一个与某个控制器同名的模板文件,那么该控制器所渲染的视图在默认状态下会使用此布局模板。

     例如:views/layouts/store.rhtml

 

<SPAN style="FONT-SIZE: small"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">  
<head>  
  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />  
  <title>Products: <%= controller.action_name %></title>  
  <%= stylesheet_link_tag 'scaffold' %>  
</head>  
<body>  
  
<p style="color: green"><%= flash[:notice] %></p>  
  
<%= yield  %>  
  
</body>  
</html>  
</SPAN>  

 

 

      这里用 stylesheet_link_tag 创建了一个 <link>标记,用于加载脚手架生成的样式表,'scaffold' 省略了css后缀。

     当我们调用yield方法并传入:laout时,Rails会自动在这里插入页面的内容,也就是真实视图所生成的内容。

 

2:controller与 model交互

    

class StoreController < ApplicationController   
  def index   
    @products=Product.find_products_for_sale #调用Product类中的方法   
  end  
end  

 

 

class Product<ActiveRecord::Base   
  def self.find_products_for_sale      
     find(:all,:order=>"title")              
 end  
end  
  
#定义类方法,类可以直接调用   
# find() 方法返回一个数组,每个元素是一个对象,order用于排序  

 

 

<%  for product in @products %>  
   <%=  product.title %>  
<% end %>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值