- 浏览: 2072239 次
- 性别:
- 来自: NYC
文章分类
- 全部博客 (628)
- Linux (53)
- RubyOnRails (294)
- HTML (8)
- 手册指南 (5)
- Mysql (14)
- PHP (3)
- Rails 汇总 (13)
- 读书 (22)
- plugin 插件介绍与应用 (12)
- Flex (2)
- Ruby技巧 (7)
- Gem包介绍 (1)
- javascript Jquery ext prototype (21)
- IT生活 (6)
- 小工具 (4)
- PHP 部署 drupal (1)
- javascript Jquery sort plugin 插件 (2)
- iphone siri ios (1)
- Ruby On Rails (106)
- 编程概念 (1)
- Unit Test (4)
- Ruby 1.9 (24)
- rake (1)
- Postgresql (6)
- ruby (5)
- respond_to? (1)
- method_missing (1)
- git (8)
- Rspec (1)
- ios (1)
- jquery (1)
- Sinatra (1)
最新评论
-
dadadada2x:
user模型里加上 protected def email ...
流行的权限管理 gem devise的定制 -
Sev7en_jun:
shrekting 写道var pattern = /^(0| ...
强悍的ip格式 正则表达式验证 -
jiasanshou:
好文章!!!
RPM包rpmbuild SPEC文件深度说明 -
寻得乐中乐:
link_to其实就是个a标签,使用css控制,添加一个参数: ...
Rails在link_to中加参数 -
aiafei0001:
完全看不懂,不知所然.能表达清楚一点?
"$ is not defined" 的问题怎么办
项目里有这样的两个需求:
1. 表单要显示和提交一个参数,这个参数单位是MHZ,但是程序里精度要求比较高是用HZ,也就是保存的时候要乘10e5,表单显示的时候,和输入的时候,都不要那6个零。
2. 支持单位换算。比如,一个项目里有个资费选项,会根据汇率情况显示美元或者RMB。显然,汇率是变化的,表单提交时,有可能是输入美元,有可能输入RMB,这个看用户设置。
所以我们的用法是如下:
model里添加方法:
在表单里修改方法如下:
看起来没什么,可以这样做的好处在于,不用在controller和viewer里太多修改。
如不汇率换算那个,我之前就会如下处理:
viewer:
Cotroller里要分别针对,创建和修改做两次处理
1. 表单要显示和提交一个参数,这个参数单位是MHZ,但是程序里精度要求比较高是用HZ,也就是保存的时候要乘10e5,表单显示的时候,和输入的时候,都不要那6个零。
2. 支持单位换算。比如,一个项目里有个资费选项,会根据汇率情况显示美元或者RMB。显然,汇率是变化的,表单提交时,有可能是输入美元,有可能输入RMB,这个看用户设置。
所以我们的用法是如下:
model里添加方法:
def noise_floor_high_disp=(x) #原来数据表字段为nf_high write_attribute(:nf_high,(x.to_f*1_000_000).to_i) end def noise_floor_high_disp() if nf_high.nil? return nil else return read_attribute(:nf_high)/1000000.0 end end
在表单里修改方法如下:
<td><%= text_field 'analyzer', :noise_floor_high_disp, %></td>
看起来没什么,可以这样做的好处在于,不用在controller和viewer里太多修改。
如不汇率换算那个,我之前就会如下处理:
viewer:
#根据参数设置取得用户设置,例如得到是美元还是RMB <%unit_diff=ConfigParam.find(67).val.to_i==1 ? @us : @rmb att = @analyzer.attenuator.nil? ? nil : @analyzer.attenuator+unit_diff %> #确定相对差值 <tr> <td><label for="attenuation">Attenuation(<%=unit_diff==0 ? "RMB" : "$"%>)</label></td> <td><%= text_field 'analyzer','attenuator',{:size=>3,:value=>att} %></td> </tr>
Cotroller里要分别针对,创建和修改做两次处理
def analyzer_create if params[:analyzer][:site_id].to_i == 0 #else # raise params[:analyzer].inspect() end @analyzer = Analyzer.new(params[:analyzer]) @site= Site.new(params[:site]) @analyzer.status = 10 if @analyzer.save unit_diff=ConfigParam.find(67).val.to_i==1 ? -60 : 0 @analyzer.update_attributes(:attenuator=>"#{params[:analyzer][:attenuator].to_i+unit_diff}") unless params[:analyzer][:attenuator].nil? or params[:analyzer][:attenuator].blank? @analyzer.update_attributes(:nf_low=>"#{params[:analyzer][:nf_low].to_i+unit_diff}") unless params[:analyzer][:nf_low].nil? or params[:analyzer][:nf_low].blank? @analyzer.update_attributes(:nf_high=>"#{params[:analyzer][:nf_high].to_i+unit_diff}") unless params[:analyzer][:nf_high].nil? or params[:analyzer][:nf_high].blank?
def analyzer_update @analyzer = Analyzer.find(params[:id]) @site=@analyzer.site if @analyzer.site_id.to_i == 0 logger.debug("handling site"); site_id = Site.create_if_needed(params[:site][:name]) params[:analyzer][:site_id]=site_id end #make sure when user stop auto_connect. we can handle if @analyzer.auto_mode !=3 and @analyzer.att_count < 9 @analyzer.update_attribute(:att_count,-1) end if @analyzer.update_attributes(params[:analyzer]) unit_diff=ConfigParam.find(67).val.to_i==1 ? -60 : 0 @analyzer.update_attributes(:attenuator=>"#{params[:analyzer][:attenuator].to_i+unit_diff}") unless params[:analyzer][:attenuator].nil? || params[:analyzer][:attenuator].blank?
发表评论
-
Destroying a Postgres DB on Heroku
2013-04-24 10:58 927heroku pg:reset DATABASE -
VIM ctags setup ack
2012-04-17 22:13 3255reference ctags --extra=+f --e ... -
alias_method_chain方法在3.1以后的替代使用方式
2012-02-04 02:14 3287alias_method_chain() 是rails里的一个 ... -
一些快速解决的问题
2012-01-19 12:35 1470问题如下: 引用Could not open library ... -
API service 安全问题
2011-12-04 08:47 1379这是一个长期关注的课题 rest api Service的 ... -
Module方法调用好不好
2011-11-20 01:58 1344以前说,用module给class加singleton方法,和 ... -
一个ajax和rails交互的例子
2011-11-19 01:53 1903首先,这里用了一个,query信息解析的包,如下 https: ... -
Rails 返回hash给javascript
2011-11-19 01:43 2272这是一个特别的,不太正统的需求, 因为,大部分时候,ajax的 ... -
关于Rubymine
2011-11-18 23:21 2262开个帖子收集有关使用上的问题 前一段时间,看到半价就买了。想 ... -
ruby中和javascript中,动态方法的创建
2011-11-18 21:01 1234class Klass def hello(*args) ... -
textmate快捷键 汇总
2011-11-16 07:20 8138TextMate 列编辑模式 按住 Alt 键,用鼠标选择要 ... -
Ruby面试系列六,面试继续面试
2011-11-15 05:55 2018刚才受到打击了,充分报漏了自己基础不扎实,不肯向虎炮等兄弟学习 ... -
说说sharding
2011-11-13 00:53 1481这个东西一面试就有人 ... -
rails面试碎碎念
2011-11-12 23:51 1939面试继续面试 又有问ru ... -
最通常的git push reject 和non-fast forward是因为
2011-11-12 23:29 17209git push To git@github.com:use ... -
Rails 自身的many to many关系 self has_many
2011-11-12 01:43 2731简单点的 #注意外键在person上people: id ... -
Rails 3下的 in place editor edit in place
2011-11-12 01:20 945第一个版本 http://code.google.com/p ... -
Heroku 的诡异问题集合
2011-11-11 07:22 1691开个Post记录,在用heroku过程中的一些诡异问题和要注意 ... -
SCSS 和 SASS 和 HAML 和CoffeeScript
2011-11-07 07:52 12952Asset Pipeline 提供了内建 ... -
Invalid gemspec because of the date format in specification
2011-11-07 02:14 2115又是这个date format的错误。 上次出错忘了,记录下 ...
相关推荐
《Windows API函数详解——以文件及剪贴板操作为例》 Windows API函数是开发者进行Windows平台应用程序开发的核心工具,它们提供了丰富的功能,包括文件操作、界面交互、系统管理等。本章将重点介绍Windows API中...
本篇将详细讲解如何通过编程实现这一功能,主要以VB(Visual Basic)语言为例,因为这是在描述中提及的编程环境。 隐藏驱动器的操作通常涉及到操作系统级别的接口调用,VB提供了丰富的API函数来实现这些功能。API...
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); ``` 以上介绍了一些基本的磁盘管理相关的API函数及其应用场景。这些API函数在Windows2000系统中被广泛应用于磁盘...
这里同样使用`GetFileAttributes`函数,但这次是检查返回的属性是否包含`FILE_ATTRIBUTE_DIRECTORY`,这表明这是一个目录。 ##### 1.3 判断文件或文件夹是否存在 ```cpp // 判断文件或文件夹是否存在 BOOL ...
应用层接口函数的实现涉及到了内核对象(kobject)和属性(attribute)的定义。通过定义一个struct bin_attribute结构体,为HMC5883L设备创建了属性文件节点。这样,用户空间可以通过echo命令和cat命令对这些属性...
doc.save_file("modified_example.xml", " ", pugi::format_default | pugi::format_write_bom); ``` 在`XmlFile.cpp`和`XmlFile.h`文件中,通常会定义一个`XmlFile`类,封装这些操作。类中可以包含如`load()`、`...
实例:(1)第一种方法CreateFile 代码如下:#include “stdafx.h”#include <windows>void main...“C://S.txt”, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
STM32F4系列是意法半导体(STMicroelectronics)推出的高性能ARM Cortex-M4内核微控制器,广泛应用于各种嵌入式系统设计。在开发基于STM32F4的项目时,理解并熟练操作寄存器是至关重要的。这个"STM32F4寄存器模板...
在IT领域,XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,尤其在软件开发中,XML因其结构化和可扩展性而被广泛应用。C++作为一门强大的编程语言,提供了多种库来处理XML文档,使得开发者...
通常,我们会选择Chrome或Firefox作为驱动程序,这里以Chrome为例。安装相应的webdriver后,可以通过以下代码启动浏览器: ```python from selenium import webdriver driver = webdriver.Chrome() driver.get('...
2. **打开串口**:使用`CreateFile`函数创建一个串口句柄,如`HANDLE hCom = CreateFile("COM1:", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);` 3. **配置串口**:使用`...
例如,在本例中使用`OF_SHARE_DENY_READ`表示不允许其他进程读取此文件。 - **返回值**:如果函数成功,则返回文件句柄;如果失败,则返回-1。 ##### 2. `CloseHandle`函数 用于关闭之前通过`OpenFile`函数打开的...
HANDLE hFile = CreateFile(fileName, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) { std::cout !" ; return; } if (!SetFileTime(hFile, ...
vb.dll 文件可能包含了一些特定的功能或服务,如本例中的串口通信功能。 ### 串口通信基础知识 - **串口通信**:是一种常见的数据传输方式,通过一条信号线逐位发送数据。它被广泛应用于计算机与外部设备之间的...
【Python编程练习题100例】是一份针对Python初学者和进阶者精心设计的实战练习资源,涵盖了Python语言的基础语法、数据结构、函数、模块、类与对象、异常处理、文件操作等多个方面。这份资源在Python 3.6环境下经过...
m_hIDComDev = CreateFile(COM2, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL); if (m_hIDComDev == NULL) { AfxMessageBox("Cannot open ...
HANDLE hFile = CreateFile(filename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile != INVALID_HANDLE_VALUE) { BITMAPFILEHEADER fileHeader; memset(&fileHeader, 0, ...
在这个例子中,我们首先创建了一个HDF5文件,然后定义了数据类型(本例中为double),接着创建了一个数据集,指定其维度为10x10。我们写入数据到数据集中,然后读取出来。需要注意的是,数据的内存布局必须与数据集...
document.getElementById(id).attribute=新属性值 ``` 本例改变了元素的 src 属性: ``` var x = document.getElementById("image"); x.src = "2.gif"; ``` 3.4 CSS 变化 改变 HTML 元素的样式: ``` document....
随着32位Windows操作系统的普及,越来越多的智能控制系统应用软件开始转向Windows平台,而串行通信作为数据交换的一种常见方式,在这些应用中占有重要地位。本文将以Windows 98 SE 32位平台和VC++6.0为例,详细介绍...