- 浏览: 87534 次
- 性别:
- 来自: 南京
最新评论
-
angjunwen:
redirect_to 是重新提交一个请求到控制器方法,所以原 ...
render与redirect_to的区别 -
lin_style:
redirect_to 应该是重新提交了一个请求,不理会当前的 ...
render与redirect_to的区别 -
bugx:
这样不是变得密码可以为空了吗
如何在update一条记录的部分字段时跳过某些校验 -
evil850209:
不错,最近正为这个发愁呢!
render与redirect_to的区别 -
wiisola:
theone 写道wiisola 写道theone 写道upd ...
如何在update一条记录的部分字段时跳过某些校验
文章列表
一般说来,layouts有5种:global layouts, controller layouts, shared layouts, dynamic layouts, action layouts.
假设有这样一个视图
<!-- views/projects/index.rhtml -->
<h2>Projects</h2>
<ul>
<% for project in @projects %>
<li><%= project.name %></li>
<% end %> ...
- 2008-04-06 14:13
- 浏览 911
- 评论(0)
我们经常需要将一个代码块传递给迭代器,并在代码块中调用另一个方法。Rails提供了一条实现这一功能的捷径,于是下面两句代码等价:
groups = posts.group_by { |post| post.author_id }
groups = posts.group_by(&:author_id)
让我们看下这一切是如何工作的:
class Symbol
# Turns the symbol into a simple proc, which is especially useful for enumerations. Examples:
#
# ...
- 2008-04-05 16:27
- 浏览 1011
- 评论(0)
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://dreamhead.blogbus.com/logs/13258146.html
大多数人都愿意与高手共事,因为他们指望着从高手身上可以学到很多东西。在ThoughtWorks,因为要pair,所以,我们 ...
- 2008-04-05 16:00
- 浏览 877
- 评论(0)
移动硬盘有10G因为之前装系统荒废了,于是决定把数据备份出去,重格一下。首先进计算机管理看,我的移动硬盘居然有345G(其实只有60G),看来是出问题了,在这里没法删那个250G的分区。于是进PQMagic,果然,移动硬盘显示状态为BAD,于是删分区格式化应用,结果重启进PQ却中途失败。。接下来再进windows后移动硬盘能识别出来,但无法再对分区进行操作了。
试了很多办法不行,于是挂到本本上,用效率源没有查到坏道,本来也没什么辙,突然发现D版番茄上有个什么DISK MANAGER,不管了,总之试一下,居然轻松帮我格成了FAT32。进win再格成NTFS,本以为一切OK了,谁知道ubuntu居 ...
- 2008-04-05 15:09
- 浏览 1308
- 评论(0)
接着004中的例子,004中我们希望找出所有未完成的任务,好吧,我承认,我半途而废的事实在是太多了,也许有几百个上千个,谁知道呢,一张A4纸肯定打不下,也许我应该先列出前20条,一条一条解决以后再去考虑后面的?
事实就是这样,我要列出找到的前20条,并且距现在最近的事排在前面最先解决,更加以前的事就算忘了对现在的我也没什么影响。于是按照前面的方法,我们会这样说
Task.find_all_by_complete(false, :limit => 20)
进一步的,我们照004中的办法把find移入model,并且使用了with_scope,我们仍然能往find_incomplete里传入 ...
- 2008-04-02 13:45
- 浏览 921
- 评论(0)
根据DHH提出的DRY原则,我们将一个公用的find方法移入model类(比如本例中的查找所有未完成的任务),然后就可以在controller中多次重用,也包括通过表间关联来查找。
# tasks_controller.rb
def index
@tasks = Task.find_incomplete
end
# models/task.rb
def self.find_incomplete
find_all_by_complete(false, :order => 'created_at DESC')
end
# projects_controller. ...
- 2008-04-02 13:07
- 浏览 862
- 评论(0)
Rails不要求在迁移任务中建立外键约束,在迁移任务中创建project_id字段后在Project和Task模型中加上相应的声明。
# project.rb
has_many :tasks
# task.rb
belongs_to :project
# projects_controller.rb
def show
@project = Project.find(params[:id])
@tasks = Task.find(:all, :conditions => [ 'project_id = ? AND complete = ?', @project. ...
- 2008-04-01 16:30
- 浏览 899
- 评论(0)
@tasks = Task.find(:all, :conditions => [ 'complete = ?', false ])
@task = Task.find(:first, :conditions => [ 'complete = ?', false ], :order => 'created_at DESC')
以动态的find_by和find_all_by方法缩短查询语句,以下代码等效。
@tasks = Task.find_all_by_complete(false)
@task = Task.find_by_complete(false, :order ...
- 2008-04-01 15:59
- 浏览 833
- 评论(0)
看了Kevin Yang对初学者的建议,终于决定开始学习Railscasts了,目前一共有99个例子,暂且希望能每天坚持学习至少一个,并以文字的形式表述出来。
User.find(session[:user_id])
以上代码每次都会向数据库发起一条查询请求,为了提高性能,只需要多加一个或标记,就可以在已赋值的情况下不再发起查询请求。
@current_user ||= User.find(session[:user_id])
不过,论坛中的某位高人说了:
hideto 写道看起来不错,但是实际上有问题:
实例变量的作用域是一次请求,即一次请求结束后@current_user这个实例 ...
- 2008-04-01 15:05
- 浏览 1083
- 评论(0)
因为刚把蛋蛋的坑填了,所以。。标题很囧。
都怪之前在linux下用虚拟XP开迅雷启动了很多FF的OST下载,后来就直接进Win下了,结果昨天进win的时候经历了一次碎片还原,今天下好的好几个RAR包都部分CRC校验错误,只能重下。
下次绝不在虚拟机中胡乱对宿主机的硬盘进行数据写入了,特别还是在linux的虚拟XP下对NTFS进行操作。。。
- 2008-03-30 17:44
- 浏览 1227
- 评论(0)
转自:http://vipnews.csdn.net/newscontent.aspx?pointid=2008_03_03_170600555
文/杨祥吉
本文作者以使用Ruby和Rails进行创业为经验背景,结合具体的项目,尝试以客观公正的方式来评价Ruby、Rails和Agile。下面的文字,我们将以名词解释和实践 ...
- 2008-03-28 13:32
- 浏览 1877
- 评论(0)
我照Agile Web Development with Rails里第11章用户管理的做了,用了password这个虚拟字段。
user.rb中的部分代码:
validates_length_of :password, :in => 6..20
def password
@password
end
def password=(pwd)
@password = pwd
returen if pwd.blank
created_new_salt
self.hashed_password = User.encrypted_password(self. ...
参考文献:http://www.fsf.org/licensing/licenses/
现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种(http://www.opensource.org/licenses/alphabetical)。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。
这里我们来看四种最常用的开源协议及它们的适用范围,供那些准备开源或者使用开源产品的开发人员/厂家参考。
BSD开源协议(original BSD licens ...
- 2008-03-25 18:42
- 浏览 1912
- 评论(0)
今天在做R.R.log的时候发现个问题,在修改密码的时候如果没有通过校验,没有显示校验错误的信息。原来的代码如下:
if @user.update_attributes(:password => params[:user][:password])
flash[:notice] = '密码修改完成'
redirect_to :action => 'ind ...
- 2008-03-25 17:07
- 浏览 4921
- 评论(3)
一般都会使用 <%= @topic.category.name %> 来简单的获取一篇文章的所在分类名,但但 @topic.category 为nil时,就会出现"nil object when you didn't expect it "的错误。
要避免发生这个错误,简单的办法就是改成如下代码:
<%= @topic category.name rescue nil %>
- 2008-03-24 19:57
- 浏览 1002
- 评论(0)