Ruby中的懒惰斐波那契

我可以在Clojure中写一个懒惰的斐波那契,如下所示: (def fib (lazy-cat [1 1] (map +’ fib (rest fib)))) 我正在尝试(不成功)在Ruby中编写它,如下所示: fib = Enumerator.new do |yielder| yielder << 1 << 1 fib.zip(fib.drop(1)).map do |a,b| yielder << (a + b) end end 在简化的情况下,这适用: fib = Enumerator.new do |yielder| yielder << 1 << 1 puts "here" end puts fib.take(2).inspect puts fib.drop(1).take(1).inspect 但这不是: fib = Enumerator.new do […]

使用Pundit的各种角色的索引视图限制

我正在尝试为三个角色创建一个show view。 管理员,超级用户和用户。 管理员应该看到所有用户。 超级用户应该只看到用户,用户不应该看到任何人。 当我在解析else user.super_user?时使用注释掉的策略方法else user.super_user? 会给我unsupported: TrueClass错误。 欢迎任何建议。 用户控制器 def index @users = policy_scope(User) authorize User end 用户政策 class UserPolicy attr_reader :current_user, :model def initialize(current_user, model) @current_user = current_user @user = model end class Scope attr_reader :user, :scope def initialize(user, scope) @user = user @scope = scope end def resolve if user.admin? […]

广告过滤服务器端

我正在开发一个Web应用程序,我在其中显示来自其他网站的HTML。 在显示最终版本之前,我想摆脱广告。 关于如何实现这一点的任何想法,建议? 它不需要是一个超级高效的过滤工具,我在考虑将adblockplus定义的一些filter移植到Ruby,并在Nokogiri的帮助下返回解析的文档。 假设我使用超级通配符filterad 。 这不是官方adblock,但为了简单起见,我会在这里使用它。 然后想法是删除任何属性与filter匹配的所有元素,例如: src=”http://ad.foo.com?my-ad.gif” href=”http://ad.foo.com” class=”annoying-ad”等 此filter的Nokogiri命令是: doc.xpath(“//*[@*[contains(., ‘ad’)]]”).each { |element| element.remove } 我为此页面应用了filter: 结果是: 不是那么糟糕,请注意全局通配符filter也删除了有效的元素,如标题,因为它们具有id=”masthead”等属性。 所以我认为这种方法对我的情况来说是好的,现在的问题是使用什么filter? 他们有一个巨大的filter列表 ,我不想迭代所有这些filter。 我正在考虑抓住前10-20并根据它解析文档,那里有最受欢迎的列表吗? 如果是这样,我一直无法找到它。

Ruby on Rails:根据数据库排序规则比较两个字符串

我有一个单词列表,想要找到数据库中已存在的单词。 我决定使用“SELECT word FROM table WHERE word IN(array_of_words)”而不是进行数十次SQL查询,然后遍历结果。 问题是数据库整理。 http://www.collat​​ion-charts.org/mysql60/mysql604.utf8_general_ci.european.html 有许多不同的字符,MySQL视为相同。 但是,在Ruby代码中,string1不等于string2。 例如:如果单词是“šuo”,数据库也可能返回“suo”,如果找到了(并且没关系),但是,当我想检查时,如果找到“šuo”的东西,Ruby,当然,返回false(šuo!= suo)。 那么,有没有办法在相同的排序规则中比较Ruby中的两个字符串?

将Rails 3转换为Rails 2:使用块的帮助程序

在Rails 3中,我使用以下帮助程序来获得奇偶色表: def bicolor_table(collection, classes = [], &block) string = “” even = 0 for item in collection string < (((even % 2 == 0) ? “even ” : “odd “) + classes.join(” “))) do yield(item) end even = 1 – even end return string end 我在我的观点中使用它: 现在,我必须将应用程序迁移到Rails 2.问题是Rails 2不使用Erubis,因此当它找到标记时,它只调用whatever.to_s。 所以,在我的情况下,这导致尝试执行 (bicolor_table(services) do |service|).to_s 带来明显(坏)的后果。 […]

Rails多态与查找表

最好的方法是什么? 我希望能够通过多态性给乐队和艺术家带来流派。 我可以用habtm和has_many做到这一点:通过但是我试图弄清楚它是否可能通过多态性。 GenreList将是具有不同类型列表的查找表(例如Punk,Pop,Metal)。 我已经回顾了Ryan Bate关于Polymorphic Assoiciations的截屏video,但我仍然被卡住了。 具体来说,我不确定如何创建多态表Genre,它将从GenreList模型(查找表)中提供jar装类型。 以下是否正确? rails generate model Genre genre_list_id:integer genreable_id:integer genreable_type:string class Artist :genreable end class Band :genreable end class Genre true end class GenreList < ActiveRecord::Base end

Xcode 4是否支持ruby-on-rails?

Xcode 4是否支持rails项目? 如果是这样,到什么程度? 更新 – 显然它可以让你编辑文本文件。 但它是否为您提供任何IDEfunction,例如语法突出显示,导航到声明,代码完成等等?

如果Rails中的相同项目排除

在我的Shop (名称= ABC; ID = 10)显示视图,我想显示附近的商店。 因此,我用这个: Shops nearby { latitude: , longitude: , html: “<a href='#item_’>”, icon: { image: “”, iconsize: [48, 48], iconanchor: [24,48], infowindowanchor: [24, 0] } }, 您会注意到h1实际上显示了当前的商店ABC,其余的实际显示了它附近的所有商店。 问题是,它还包括商店ABC,因为它是最近的点。 我如何要求each人排除商店ABC?

在Rails 4中发送带有远程true的表单

我有一个用于更新图像的表单 true do |f| %> 行动有 respond_to do |format| format.js format.html end 但我收到以下错误 ActionView::MissingTemplate – Missing template users/update_image, application/update_image with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :coffee]}. 我没有update_image.html.erb模板,但是从错误中我得知请求不是以js格式发送的 我错过了什么?

Rails:在category_helper.rb中定义的方法,category_controller.rb无法识别

更多新手问题。 我知道如果我在我的应用程序助手中定义一个方法,它可用于整个应用程序代码。 在我的应用帮手中,我有: def primary_user_is_admin if current_user user_login_roles = JSON.parse(current_user.role) if user_login_roles[“admin”] return 1 end end return nil end 如果我从categories_controller调用它: if !primary_user_is_admin redirect_to root_url end 我收到一条错误消息:未定义的局部变量或方法`primary_user_is_admin’ 如果我将primary_user_is_admin代码放在​​registrations_helper.rb文件中,也会发生这种情况 但是,如果我在任何视图中使用它(例如views / user / edit.html.erb) 然后它工作。 我错过了什么?