Tag: ruby

使用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中的两个字符串?

当我开始上课时,自我传递

当我在B里面调用A.new时,是否有办法自动获取某些对象而不指定它? 我希望自动将self从B传递到A而不指定它。 class A initialize object=target-self end end class B A.new end 然后,除非我指定另一个类,否则每次我希望self都被默认传递时,我不必输入它。 A.new self

什么是在ruby中格式化xml字符串的最佳方法?

给出一个像这样的xml字符串: value 什么是最好的选择(使用ruby)将其格式化为可读的东西: value

如何使用Jekyll和Markdown自动转义HTML内容?

在foo.markdown中我有以下内容: — layout: default title: Snarky little Ewok — A little Ewok is sometimes referred too as . But pappa Ewok is called – if you know what’s good for you. 好吧,我希望Jekyll自动html逃脱大于和小于字符。 在今天的学徒训练之后,我非常疲惫,我只是懒得手动html逃避自己:> h3 < 是否有配置选项或其他东西自动逃避Jekyll降价内容?

如何将带有JSON字符串的数组转换为JSON对象(ruby)

我有一个数组,其内容如下: [ [0] { “name” => “Mark”, “id” => “01”, “description” => “User”, }, [1] { “name” => “John”, “id” => “02”, “description” => “Developer”, } ] 注意:现在,Array的每个项都是一个哈希(不是字符串)。 也就是说,如果我puts myarray[0].class我得到hash作为回报。 我希望能够创建一个我可以作为object[i].field引用的object[i].field 。 例如,我希望能够通过调用object[0].name来获取“Mark”,或者通过调用object[1].description获取“Developer”。 这可能吗? 我试图利用.to_json方法对付我的数组,但它并不能完全满足我的需求。 谢谢。

嵌套模型validation – 不显示错误

关于这一点有很多问题,但它们似乎都没有帮助。 是的,我看过这个导演 。 我有一个有很多书的作者,如下: 作者: class Author < ActiveRecord::Base attr_accessible :name has_many :books, dependent: :destroy accepts_nested_attributes_for :books, allow_destroy: true validates :name, presence: true validates :name, length: { minimum: 3 } end 书: class Book < ActiveRecord::Base attr_accessible :name, :year belongs_to :author validates :name, :year, presence: true validates :year, numericality: { only_integer: true, less_than_or_equal_to: Time.now.year } […]

如何根据散列中的值从数组中获取散列?

如何根据哈希值中的数组从数组中获取哈希? 在这种情况下,我想选择得分最低的哈希值,即potato 。 我使用Ruby 1.9。 [ { name: “tomato”, score: 9 }, { name: “potato”, score: 3 }, { name: “carrot”, score: 6 } ]

Ruby的OpenSSL :: Random的种子是否充足?

我对Ruby知之甚少,所以请原谅我,如果答案是显而易见的。 我在http://www.ruby-doc.org/stdlib-1.9.3/libdoc/securerandom/rdoc/SecureRandom.html注意到Ruby在调用random_bytes时使用pid和当前时间来播种OpenSSL :: Random是。 除非发生其他事情,否则这不是Netscape在90年代中期初始SSL实施中使用的种子吗? http://en.wikipedia.org/wiki/Random_number_generator_attack#Prominent_examples_of_random_number_generator_security_issues 当然,Ruby还没有复活一个18岁的小虫。 我在这里想念的是什么? 编辑:这是random_bytes的来源。 请注意第一次检查是否使用OpenSSL编译ruby,在这种情况下,它会使用pid和当前时间对其进行种子处理。 def self.random_bytes(n=nil) n = n ? n.to_int : 16 if defined? OpenSSL::Random @pid = 0 if !defined?(@pid) pid = $$ if @pid != pid now = Time.now ary = [now.to_i, now.nsec, @pid, pid] OpenSSL::Random.seed(ary.to_s) @pid = pid end return OpenSSL::Random.random_bytes(n) end if !defined?(@has_urandom) || @has_urandom […]