Tag: 的Ruby on 轨道

使用acts_as_paranoid插件进行软删除 – validation怎么样?

我正在尝试使用acts_as_paranoid插件进行软删除记录。 我之前使用db中的标志来管理它。 我知道这个插件将省略搜索记录并查找记录是否被软删除。 我想知道的是,如果我在模型中validates_uniqueness_of :email ,我删除了(软删除)带有电子邮件’prince@gmail.com’的记录。 现在,当我尝试创建具有相同电子邮件的新用户时,validation将起作用并阻止创建新记录。 或者它会省略软删除的记录,就像它对发现一样吗? (当然,我希望这种情况发生。)

rails:显示用户友好的消息,用于rails中的路由错误

我在mac osx leopard上使用rails 2.3。 每次我输入一个在rails应用程序中不存在的url时,我会收到以下错误 Routing Error No route matches “/whatever_i_typed” with {:method=>:get} 这是发现的发现,但我想知道如何确保用户看到更友好的’哎呀! 找不到’页面。 我正在考虑做一个开始…救援块,但我不知道在哪里放,它不知道错误代码(即ActiveRecord :: RecordNotFound) 谢谢! 尤瓦

缺少生产环境的密钥库

我的情况非常像SemiFixed:缺少’secret_key_base`用于’生产’环境 : 我的config / secrets.yml production: secret_key_base: 我在/ etc / environment中添加了一个条目,以便在我登录并输入时 echo $SECRET_KEY_BASE 我得到了我用rake secret创建的长字符串。 但是对于’生产’环境,我仍然因为缺少secret_key_base而得到500错误,在config / secrets.yml中设置此值,即使我重置了整个计算机。 那还有什么可能出错?

每个控制器的Rails布局

我有一个家庭控制器和一个新闻控制器。 我希望这两个控制器都使用application.html.erb布局文件,除此之外,对于家庭,使用家庭布局和新闻,使用新闻布局。 然后呈现特定视图。 在轨道中这可能吗? 换句话说,我不希望为每个视图指定一个布局,但是每个控制器都要从application.html.erb布局inheritance。 我想要做的是删除添加顶部导航栏的冗余,并在每个布局文件中包含javascript / css。 我宁愿将其包含在一个文件中,并使用另一个布局执行控制器特定布局,然后最终渲染视图。 谢谢

是否有任何好的googlemaps插件用于rails?

有一些很好的地理编码插件(例如geokit),但你能推荐一个googlemaps插件用于rails中的“视图”吗? 我之前使用过YM4R / GM,但我不知道它是否仍然是最新的……

Rails从现有表生成模型?

我是rails框架的新手,想知道如何基于现有表生成模型。 例如,我有一个名为person的表,并希望根据该表中的列生成模型。 但是,每当我使用“ruby脚本/生成模型Person –skip-migration时,它会创建一个名为people的空表并在此之后创建模型。有没有办法在名为person的表之后生成模型? 谢谢。

String对象上的’tap’方法不返回预期结果

我在’String’类型的对象上使用’tap’方法时遇到了一个有趣的问题。 “abc”.tap { |o| o = “xyz” } # this line returns “abc” instead of “xyz” ‘tap’方法适用于其他类型的对象。 [].tap { |o| o << "xyz" } # this line returns ["xyz"] as expected 我在Windows XP上使用Rails 2.3.2和Ruby 1.8.6。 我在这里想念的是什么? 更新1:我解决了这个问题。 这是我的使用错误。 在第一个场景中,我将值重新分配给块参数而不是修改它。 我能够重写代码并获得预期的结果。 “abc”.tap { |o| o.replace “xyz” } 更新2:此处使用的代码只是为了演示问题。 我的实际代码看起来不像这样。

使用gem未读与public_activity

我不确定这是可能的,但考虑到你可以将方法注入模块的方法,有没有办法将“acts_as_readable:on =>:updated_at”注入PublicActivity :: Activity? 问题是:我希望unread还能跟踪用户尚未看到的新活动,所以我首先尝试这种方式。 class Activity :updated_at end class User < ActiveRecord::Base acts_as_reader end 但是当我这样做时,我在记录(DB table read_marks)中注意到了 Activity.mark_as_read! :all, :for => current_user 将readable_type键设置为’PublicActivity :: Activity’而不是’Activity’ 这是因为Unread gem使用 user.read_marks.build(:readable_id => obj.id, :readable_type => self.base_class.name) base_class给出了最接近ActiveRecord :: Base的类什么是最好的选择? 1)以某种方式将’acts_as_readable:on =>:updated_at’直接注入PublicActivity :: Activity 2)fork PublicActivity并检查是否安装了Unread gem,如果是,则添加’acts_as …’行 3)分叉Unread gem并且…不确定我会在这里做什么,想到的第一个丑陋的事情是检查一个类是否以PublicActivity开头! 而且只是为了定义问题:由于记录的(DB table read_marks)可读类型是PublicActivity :: Activity而不是Activity ,我的 Activity.unread_by(current_user).count 永远不会返回正确的计数。 […]

Rails 3:group =>:按created_at desc排序的字段

如何选择按created_at desc排序的列分组的所有记录。 我可能想要检索每篇文章的所有最新评论。 无论我做什么组(:article_id),总会返回最早的评论。 最好的祝福。 AsbjørnMorell

time_ago_in_words问题

我有一个问题,我刚刚使用time_ago_in_words遇到(出于某种原因)。 发表post后,我得到了 translation data {“one”=>”1 minute”, “other”=>”{{count}} minutes”} can not be used with :count => 9 我也没有做任何有趣的事情,只是调用一个小帮助函数 def friendly_publish_date(post) return ” if post.publish_date.nil? if post.publish_date >= 1.day.ago “#{time_ago_in_words post.publish_date} ago” else post.publish_date end end 现在,这已经很好地工作了很长时间,然后我尝试今天早上发布一个post,它开始抛出早先的例外。 有任何想法吗? 编辑:再次发生,所以这里是一个完整的堆栈跟踪请求。 Processing PostsController#index (for 74.213.163.234 at 2010-01-05 11:43:26) [GET] Parameters: {“action”=>”index”, “controller”=>”posts”} Rendering template within layouts/application Rendering posts/index ActionView::TemplateError […]