`
wiisola
  • 浏览: 86833 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
文章列表
一般说来,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 %> ...
我们经常需要将一个代码块传递给迭代器,并在代码块中调用另一个方法。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: # # ...
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://dreamhead.blogbus.com/logs/13258146.html 大多数人都愿意与高手共事,因为他们指望着从高手身上可以学到很多东西。在ThoughtWorks,因为要pair,所以,我们 ...
移动硬盘有10G因为之前装系统荒废了,于是决定把数据备份出去,重格一下。首先进计算机管理看,我的移动硬盘居然有345G(其实只有60G),看来是出问题了,在这里没法删那个250G的分区。于是进PQMagic,果然,移动硬盘显示状态为BAD,于是删分区格式化应用,结果重启进PQ却中途失败。。接下来再进windows后移动硬盘能识别出来,但无法再对分区进行操作了。 试了很多办法不行,于是挂到本本上,用效率源没有查到坏道,本来也没什么辙,突然发现D版番茄上有个什么DISK MANAGER,不管了,总之试一下,居然轻松帮我格成了FAT32。进win再格成NTFS,本以为一切OK了,谁知道ubuntu居 ...
接着004中的例子,004中我们希望找出所有未完成的任务,好吧,我承认,我半途而废的事实在是太多了,也许有几百个上千个,谁知道呢,一张A4纸肯定打不下,也许我应该先列出前20条,一条一条解决以后再去考虑后面的? 事实就是这样,我要列出找到的前20条,并且距现在最近的事排在前面最先解决,更加以前的事就算忘了对现在的我也没什么影响。于是按照前面的方法,我们会这样说 Task.find_all_by_complete(false, :limit => 20) 进一步的,我们照004中的办法把find移入model,并且使用了with_scope,我们仍然能往find_incomplete里传入 ...
根据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. ...
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. ...
@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 ...
看了Kevin Yang对初学者的建议,终于决定开始学习Railscasts了,目前一共有99个例子,暂且希望能每天坚持学习至少一个,并以文字的形式表述出来。 User.find(session[:user_id]) 以上代码每次都会向数据库发起一条查询请求,为了提高性能,只需要多加一个或标记,就可以在已赋值的情况下不再发起查询请求。 @current_user ||= User.find(session[:user_id]) 不过,论坛中的某位高人说了: hideto 写道看起来不错,但是实际上有问题: 实例变量的作用域是一次请求,即一次请求结束后@current_user这个实例 ...
因为刚把蛋蛋的坑填了,所以。。标题很囧。 都怪之前在linux下用虚拟XP开迅雷启动了很多FF的OST下载,后来就直接进Win下了,结果昨天进win的时候经历了一次碎片还原,今天下好的好几个RAR包都部分CRC校验错误,只能重下。 下次绝不在虚拟机中胡乱对宿主机的硬盘进行数据写入了,特别还是在linux的虚拟XP下对NTFS进行操作。。。
转自:http://vipnews.csdn.net/newscontent.aspx?pointid=2008_03_03_170600555 文/杨祥吉  本文作者以使用Ruby和Rails进行创业为经验背景,结合具体的项目,尝试以客观公正的方式来评价Ruby、Rails和Agile。下面的文字,我们将以名词解释和实践 ...
我照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 ...
今天在做R.R.log的时候发现个问题,在修改密码的时候如果没有通过校验,没有显示校验错误的信息。原来的代码如下: if @user.update_attributes(:password => params[:user][:password]) flash[:notice] = '密码修改完成' redirect_to :action => 'ind ...
一般都会使用 <%= @topic.category.name %> 来简单的获取一篇文章的所在分类名,但但 @topic.category 为nil时,就会出现"nil object when you didn't expect it "的错误。 要避免发生这个错误,简单的办法就是改成如下代码: <%= @topic category.name rescue nil %>
Global site tag (gtag.js) - Google Analytics