Tag:

在Ruby On Rails中使用Gems:未定义的方法?

有这个时髦的validation码,询问问题而不是显示图片。 您可以在textcaptcha.com上阅读相关内容。 无论如何。 我想在Ruby on Rails中使用它。 一位名叫Matt Hutchinson的开发人员写了一个Gem,可以轻松连接到API。 他在github上的源文件旁边有一组指令 。 无论如何,它看起来很简单,但在尝试实现它时,我每次都会收到此错误: undefined method `acts_as_textcaptcha’ for # Rails.root: /Users/cory/Documents/Learning/RoR/dpt Application Trace | Framework Trace | Full Trace app/models/citation.rb:20 app/controllers/citations_controller.rb:29:in `new’ 我的问题的根源与这个特定的gem有点关系,而且更多关于gem如何工作。 我已经安装了gem,然后将它捆绑在我的rails应用程序中,它应该是可访问的(据我所知)。 我在gemfile.rb和gemfile.lock看到对gem的引用,但是它一次又一次告诉我我正在使用和未定义的方法。 如果不是,gem应该为我定义方法? 或者我手动必须做什么? 如果有任何其他信息有用,请告诉我,谢谢!

rails – 选择captcha插件

Rails中有很多validation码插件,还有许多类型的防止垃圾邮件和泛滥的解决方案。 所以这不仅是Rails的问题。 我们来看看我们有哪些类型的插件: 1.经典图像validation码 ( zendesk的Captcha ,Simple_captcha,Validates_captcha, winton的Captcha ,Raptcha)。 正: 可以有效防止自动解密(不确定Simple_captcha,但似乎zendesk和winton的validation码都没有实现,因为他们使用预先生成的图像(而不是按需),所以我们可能的垃圾邮件机器人可以在那些图像上学到了)。 负: 需要DB表(至少是简单的Captcha。不是很糟糕,但在使用后是否要清理它?)。 需要RMagick或类似(对我来说不是那么实际,因为我已经在我的网站上有它)。 失败手动解密(我知道2美元/ 1000张图片)。 对用户来说很烦人,可能会伤害转换率。 2. ReCaptcha (Recaptcha,Rack-recaptcha)。 正: 可以有效防止自动解密。 不要求Rmagick和DB表。 负: 向第三方网站拨打api电话。 失败手动解密。 比以前更烦人。 3.蜜jar (Negative-captcha,Trap_door,Reverse_captcha,Honeypot-captcha,Bouncy_bots, invisible_captcha )。 正: 用户不知道validation码的存在。 不要求Rmagick和DB表。 负: 可能无法自动解密(有没有可以识别此插件的机器人?)。 失败手动解密。 4.文本库 (Humanizer,Brain_buster,Gotcha)。 正: 不需要Rmagick和DB表(Brain_buster除外)。 负: 可能无法自动解密。 失败手动解密。 有点烦人(可以本地化)。 5.其他 (Acts_as_snook) 正: 用户不知道validation码的存在。 不要求Rmagick和DB表。 负: 不知道有没有,因为它很不寻常。 但我认为这可能会导致水浸问题,因为它可能需要在某些时候进行调节。 6.类似Akismet的解决方案 (不知道它们的效率)。 […]

关于Ruby on Rails上validation码的建议

我想在Rails项目中实现一个表单提交的validation码,但我不知道该怎么做。 我倾向于简化实现,使用时的可靠性,因为它太复杂,因为我的应用程序不需要太高的安全级别。 有人有什么建议吗?

Yard文档工具中的@tag和@!标签有什么区别?

在查看Yard文档和示例时,我发现一些标签以感叹号为前缀。 我发现有和没有感叹号的工作示例,我无法发现差异,所以当使用@!some-tag代替@some-tag时会发生什么变化? 例如,此代码为attr和attr2生成相同的文档 class Anything # @!attribute [rw] attr # @attribute [rw] attr2 end 另一方面,在一些 例子中,感叹号的重要性有下划线,所以它应该做一些事情,但我找不到任何关于它的使用的文档。 @!方法示例 Rails模型中的这两个注释都会生成新方法 # @!method with_bang(param) scope :foo_bar, where(foo: ‘bar’) # @method without_bang(param) scope :foo_baz, where(foo: ‘baz’) 码输出:

动态文档,使用另一个YARD描述中的方法返回?

我正在记录一个项目,并且我有类似于以下内容: def foo return bar(__method__) end def bar (method) return method.to_s + ‘somestring’ end 我正在设置多种类似于我实现foo的方法,他们正在返回bar的返回值。 一个例子如下: # The descriptions for foo0… # @return [String] the method name concatenated with somestring def foo0 return bar(__method__) end # The descriptions for foo1… # @return [String] the method name concatenated with somestring def foo1 return bar(__method__) end # […]

Yard doc和`define_method`

有没有办法在YardDoc中注释使用define_method的方法 ? 我试过这个: %w(one two three).each do |type| # The #{type} way # @return [String] the #{type} way define_method(“#{type}_way”) do … end end 但是,不幸的是,没有工作。

如何使Yard` @ macro`s适用于多个文件

如果我在一个文件中有以下内容: module Something class Resource # Defines a new property # @param [String] name the property name # @param [Class] type the property’s type # @macro [attach] property # @return [$2] the $1 property def self.property(name, type) end end class Post < Resource property :title, String property :view_count, Integer end end 使用get文档定义的methods property 。 但是,如果我在单独的文件中有这些定义,则文档生成不正确,例如在下面的情况中: […]

干燥场参数

我已经得到了我认为是一个相当基本的码宏用法,其中我有一个Hash结构,其中包含多个函数之间共享的多个选项。 我希望使用一个宏只是为了防止我不得不在整个地方复制这个结构,但它似乎并没有像那样工作。 我期望工作的是: # @macro [new] my_hash # @param $1 [Hash,Array] Inputted my_hash # @option $1 [String] :a Value for A. # @option $1 [String] :b Value for B. # @option $1 [String] :c Value for C. ## # my_func does stuff # @macro my_hash h1 def my_func h1 end ## # other_func does stuff […]

Gem-idea:当HTTP方法发布,放置或删除时,在before_filter中使用validation码自动保护垃圾邮件

我正在考虑为rails编写一个自动垃圾邮件保护系统(也许我会写一个公共gem)。 我的概念是在application_controller中包含一个辅助方法: class ApplicationController 30.seconds :limit => 50) … end 然后我想在每个控制器中自动包含一个before_filter,如果当前请求是通过post,put或delete-method检查的话。 如果用户的上次发布请求小于:min_time,则应将请求重定向到captcha-input-page(发布的用户数据驻留在隐藏的html字段中)。 # before_filter :check_spam def check_spam if !request.get? && session[:last_manipulation_at] && session[:last_manipulation_at] >= DateTime.now – 30.seconds redirect_to captcha_path # (doesn’t know yet how to handle the post data to # display in hidden fields in the spam-captcha-form) end end 在captcha.haml中 =form_tag -request.params.each do |key, […]

使用YARD记录模型属性

我正在使用YARD为我的rails应用程序生成文档,使用makrdown作为脚本解析器。 大多数文档function都是开箱即用的。 但是,我还想将模型属性记录为一个,记录模型上的可用属性列表和两个,以描述它们的语义含义。 我无法在YARD中找到任何特殊的支持,我基本上只是列出了类评论中的属性。 有没有办法记录动态生成的模型属性,以便它们像标准属性/方法一样出现在文档中? PS我已经使用annodate-models gem在类列表的顶部生成基本的模式转储,但这不是我想要的。