1、 一个实变量由@开头,它的范围限制在 self 对象内.两个不同的对象,即使属于同一个类,也可以拥有不同值的实变量.从对象外部来看,实变量不能改变甚至观察(比如, Ruby的实变量从来不是公用的),除非方法由程序员明确声明.像全局变量一样,实变量在初始前的值是nil.
Ruby的实变量用不着声明.这暗含着对象的弹性结构.实际上,每个实变量都是在第一次出现时动态加入对象的.
(实变量可以被前台页面访问)
2、scaffold的用法
2.0以后下是用 script/generate scaffold ModelName [field:type, field:type]
在1.2.6之前我们可以通过./script/generate scaffold product admin 来建立一个Post的模型和对应的admin控制器
但是在2.0以后使用./script/generate scaffold product [title:string]命令后,会建立一个product的模型和一个product的控制器。就是根据rails命名约定自己加的。
3、link_to(链接)
link_to"编辑",:action=>"edit"
此句创建一个指向edit这个action的html链接,链接显示字符为“编辑”
link_to除了action,还可以定义controller,以及action的参数
link_to "About", :controller=>"showpage", :action=>"about", :id=>11
此句生成的url为http://.../showpage/about/11
如果把上一个link_to语句的id部份改写为:name=>"gichengan",则生成的url为
http://.../showpage/about?name="glchengang"和前一个url比较得知,id是默认参数,不显示在浏览器的url中
4、class User < ActiveRecord::Base
set_table_name "table1" 指定非默认的表名
set_primary_key "name" 指定非默认主键 以后name字段就成id,
如o.id="chengang"
end
5、2.8.2更设置
Rails命名约优于配我们不得已违反Rails也提供参下即方面
1.belongs_to属性
belongs_to : student,
:class_name => " Student ", #指父类
:foreign_key => "student_id",#外键
:conditions => "id is not null",#约束条件
2.has_one属性
has_one除拥有belongs_to的属性,自己还有两个属性
:dependent => true父表删除记录,子表删除相应的记录,
:order =>"id DESC"返回记录排序
3.has_many的属性
has_many除了拥有has_one的属性,还有三个属性
:exclusively_dependent => true 说明作用和dependent一同但速度快,两属性不能同时使用,
:finder_sql => "select i.* from categories c, items i where i.category_id = c.id "指定返回的数据集
:counter_sql => "select count(*) from items"
重写记录数
2.10
2.10 模型的验证
在类用一些validates_*属性,可以定义字段特征。不需要写代码Rails框架自动进行验证validates_presence_of :title, :desc, :image_url 必须不为空
validates_numericality_of :price必须是数字
validates_uniqueness_of :title 唯一
validates_format_of :image_url, 文件名必须是图片扩展名
:with => %r{^http:.+\.(gif|jpg|png)$}i, :message => "must be a URL for a GIF, JPG, or PNG image"
保存到据库之前会调validate方法例:
def validate
errors.add(:price, "should be positive")unless price.nil?||price> 0.0 end
分享到:
相关推荐
标题中的“action-record”是一个专门用于事件记录和回放的 JavaScript 工具,它为开发者提供了一种方便的方式来捕获用户在网页上的交互行为,并能够重新播放这些行为,这对于测试、调试以及创建交互式用户体验非常...
Spring in Action CN.001<br>Spring in Action CN.002<br>Spring in Action CN.003<br>Spring in Action CN.004<br>Spring in Action CN.005<br>Spring in Action CN.006<br>Spring in Action ... <br>本书信息:...
在讨论Struts2框架时,我们经常会遇到一个关键词——Action,它在Struts2中扮演着非常关键的角色。今天我们就来探讨Action的含义、作用以及在Struts2框架中的配置。 首先,Action在Struts2中包含三层含义。第一层,...
**Windchill 9.0:Action与ActionModel详解** 在Windchill 9.0这一版本中,Action和ActionModel是两个核心概念,它们在系统中起着至关重要的作用,尤其是在工作流程(Workflow)和业务逻辑处理方面。这篇详细的知识...
### Action的三种类型详解 在自动化测试工具QTP(Quick Test Professional)中,Action是一种重要的概念,它代表了脚本中的一个独立执行单元。通过合理地组织和利用Action,可以帮助测试人员更高效、灵活地进行自动...
### jsp自动调用action详解 #### 一、概述 在Web开发中,尤其是在使用Java Server Pages (JSP)与Struts框架时,有时需要在用户访问某个初始页面(如欢迎页)时自动触发一系列后端操作(如执行某个Action)。这种...
13. `ACTION_DATA_ACTIVITY_STATE_CHANGED_ACTION` 和 `ACTION_DATA_CONNECTION_STATE_CHANGED_ACTION`:这两个广播分别用于通知电话的数据活动状态和数据连接状态变化,对于网络相关功能的监控非常有用。...
Struts2 动态调用 Action 指定方法及默认 Action 配置 Struts2 框架中,一个 Action 可以包含多个处理逻辑,而不是只有一个 execute() 方法。在实际开发中,我们经常需要在一个 Action 中实现多个处理逻辑,这样...
### Struts2中Action间的参数传递方法 在Struts2框架中,经常需要实现Action之间的跳转,并在跳转过程中传递必要的参数。这种需求在实际开发中非常常见,尤其是在需要根据用户的不同操作来调用不同的业务逻辑时。...
在某些情况下,我们可能需要启动多个Service来执行不同的任务,但问题在于,如果这些Service的Intent ACTION(动作)相同,可能会引发冲突。本篇文章将深入探讨这个主题,并提供一个验证示例。 当多个Service声明了...
IronPython in Action 无水印pdf版。 IronPython in Action 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络 IronPython Action
在开发Java Web应用程序时,尤其是使用Struts2或者Spring MVC等MVC框架时,我们经常需要在多个Action之间进行跳转并传递参数。这在构建动态、交互性强的Web应用中是必不可少的。本项目旨在演示如何在自定义的Action...
### Struts中的ActionForward详解 #### 一、ActionForward的作用与功能 在Struts框架中,ActionForward扮演着至关重要的角色。它不仅负责处理请求之后的流程控制,还能够指导Struts框架下一步应该转向何处。具体而...
Android系统内置了许多预定义的ACTION,比如ACTION_VIEW、ACTION_CALL、ACTION_SEND等,开发者也可以自定义ACTION以满足特定需求。以下是一些常见的ACTION及其用途: 1. ACTION_MAIN:这是所有应用启动的入口点,...
Spring in Action CN.001<br>Spring in Action CN.002<br>Spring in Action CN.003<br>Spring in Action CN.004<br>Spring in Action CN.005<br>Spring in Action CN.006<br>Spring in Action ... <br>本书信息:...
在Struts2框架中,Action类是业务逻辑处理的核心组件,它负责接收并处理来自用户的请求。本实例探讨了如何让一个Action类处理多个请求,这在开发中常见于需要集中处理相似请求的情况,可以提高代码复用性和结构的...
jQuery in Action(3rd) 英文mobi 第3版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
2. **长按事件处理**:为了实现长按启动录音,我们需要监听并处理`TouchListener`的`ACTION_DOWN`和`ACTION_UP`事件。当用户按下屏幕时开始录音,松开时停止录音。如果在录音过程中上滑,需要取消录音,这就需要结合...