Questions tagged «ruby»

Ruby是由松本行弘(Matz)于1995年创建的一种多平台开放源代码,动态的,面向对象的解释性语言。[ruby]标记用于与Ruby语言有关的问题,包括其语法和库。Ruby on Rails问题应标记为[ruby-on-rails]。


4
使用Liquid标记获取Jekyll的今天日期
我认为这(应该)很容易,但是我无法使用Liquid标记将今天的日期显示在Jekyll页面中。根据文档,我应该能够执行此操作以获取该日期的年份: {{ 'now' | date: "%Y" }} 但是呈现的只是字符串now,而不是任何格式化的日期。我究竟做错了什么?
67 ruby  datetime  jekyll  liquid 

10
Rails:当数据库中没有元素时,一种优雅的消息显示方式
我意识到我正在写很多与此相似的代码: <% unless @messages.blank? %> <% @messages.each do |message| %> <%# code or partial to display the message %> <% end %> <% else %> You have no messages. <% end %> Ruby和/或Rails中是否有任何构造可以让我跳过第一个条件?这样当迭代器/循环甚至不会进入一次时将执行该操作?例如: <% @messages.each do |message| %> <%# code or partial to display the message %> <% and_if_it_was_blank %> …


4
如何使用Devise“软删除”用户
我目前在Rails项目中使用Devise进行用户注册/身份验证。当用户想要取消其帐户时,该用户对象被销毁,这使我的应用程序处于不希望的状态。 实现“软删除”的最简单方法是什么,即仅删除个人数据并将用户标记为已删除?我仍然想保留所有记录关联。 我认为我必须首先为用户介绍一个新的“已删除”列。但是随后,我在用户的个人资料视图中停留了以下默认代码: <p>Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :confirm => "Are you sure?", :method => :delete %>.</p> 在哪里可以找到:delete方法?我应该如何覆盖默认的Devise方法?

6
Ruby JSON解析更改哈希键
可以说我有这个哈希: { :info => [ { :from => "Ryan Bates", :message => "sup bra", :time => "04:35 AM" } ] } 我可以通过这样做来调用信息数组hash[:info]。 现在,当我将其转换为JSON(JSON.generate),然后对其进行解析(JSON.parse)时,将得到以下哈希值: { "info" => [ { "from" => "Ryan Bates", "message" => "sup bra", "time" => "04:35 AM" } ] } 现在,如果使用hash[:info]它nil,它将返回,但是如果使用,则不会hash["info"]。 为什么是这样?而且是否有任何方法可以解决这种不兼容问题(除了从一开始就使用字符串键)?

3
如何将多个参数作为数组传递给ruby方法?
我在Rails助手文件中有这样的方法 def table_for(collection, *args) options = args.extract_options! ... end 我希望能够像这样调用此方法 args = [:name, :description, :start_date, :end_date] table_for(@things, args) 这样我就可以基于表单提交动态传递参数。我无法重写该方法,因为我在很多地方都使用了它,那么我还能怎么做呢?

8
我有一个Rails任务:应该使用脚本/运行器还是耙子?
对于临时的Rails任务,我们有一些实现的替代方案,其中主要的替代方案似乎是: script/runner some_useful_thing 和: rake some:other_useful_thing 我应该选择哪个选项?如果有明确的偏爱,那么我何时应该考虑使用另一个?如果从来没有,那么您为什么会认为它仍然存在于框架中而没有弃用警告?

3
Sinatra与Rails
我已经完成了Sinatra和Rails的一些示例,但是我很难确定哪些功能属于哪种技术。 通过使用Sinatra / Rails,我可以得到什么?仅仅是ActionPack / ActionView吗?如果我错了,请纠正我,但是我可以只使用Webrick / Mongrel并提供我的.erb文件,对吗?而且我可以在这些文件中使用ActiveRecord技术,并且仍然访问发布变量,会话状态和querystring变量,对吗? 所以,我要问的是,如果我从上述类似PHP的场景开始;Webrick + ERB + ActiveRecord,使用Sinatra有什么好处?通过使用Rails,我还能获得什么呢?

4
Rails:分部应该知道实例变量吗?
例如,瑞安·贝茨(Ryan Bates)的nifty_scaffolding edit.html.erb <%= render :partial => 'form' %> new.html.erb <%= render :partial => 'form' %> _form.html.erb <%= form_for @some_object_defined_in_action %> 这种隐藏状态使我感到不舒服,所以我通常喜欢这样做 edit.html.erb <%= render :partial => 'form', :locals => { :object => @my_object } %> _form.html.erb <%= form_for object %> 那么哪个更好:a)使局部变量访问实例变量,或者b)传递局部变量所需的所有变量? 到目前为止,我一直在选择b),但确实遇到了一些泡菜: some_action.html.erb <% @dad.sons.each do |a_son| %> <%= …

3
如何使用Ruby 2.7.0修复Rails的警告消息
有人解决过这个问题Ruby 2.7.0吗? 我使用rbenv并安装了Ruby v2.7.0,然后使用创建了一个Rails项目Rails v6.0.2.1。 目前,通过运行 rails s rails s -u puma rails s -u webrick 服务器启动并为站点提供服务,但是在Console日志中,我看到两个警告消息: local:~/rcode/rb27$ rails s => Booting Puma => Rails 6.0.2.1 application starting in development => Run `rails server --help` for more startup options .rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/actionpack-6.0.2.1/lib/action_dispatch/middleware/stack.rb:37: warning: Using the last argument as keyword parameters is deprecated; …

4
未定义的方法`transform_keys'加载Sidekiq网站
更新gem之后,它不会加载sidekiq网站,并显示以下错误: NoMethodError (undefined method `transform_keys' for <ActionDispatch::Request::Session:0x00005568df2a8710>): 更新的宝石是: selenium-webdriver 3.142.7 rack-protection 2.0.8.1 mime-types 3.3.1 mini_magick 4.10.1 image_processing 1.10.3 groupdate 4.3.0 friendly_id 5.3.0 faraday 0.17.3 http 4.3.0 public_suffix 4.0.3 rack 2.1.1 crass 1.0.6 i18n 1.7.1 minitest 5.14.0 ruby版本:ruby 2.6.0p0(2018-12-25修订版66547)[x86_64-linux] 完整的错误讯息

2
为什么在Ruby中将Regexp对象视为“虚假”?
Ruby有“的普遍想法感实性 ”和“ falsiness ”。 Ruby 确实有两个特定于Boolean对象的类,TrueClass并且FalseClass具有分别由特殊变量true和表示的单例实例false。 但是,真实性和虚假性不仅限于这两个类的实例,该概念是通用的,适用于Ruby中的每个对象。每个对象都是真实的或虚假的。规则很简单。特别是,只有两个对象是虚假的: nil,的一个实例,NilClass以及 false,的单例实例 FalseClass 每个其他对象都是真实的。这甚至包括在其他编程语言中被认为是虚假的对象,例如 的,Integer 0 的,Float 0.0 空,String '' 空,Array [] 空,Hash {} 这些规则是语言内置的,并且不是用户定义的。没有to_bool隐式转换或类似的东西。 这是ISO Ruby语言规范的引文: 6.6布尔值 一个对象可以分为真对象或假对象。 只有false和nil是伪造的对象。false是该类的唯一实例FalseClass(请参见15.2.6),false表达式对其进行评估(请参见11.5.4.8.3)。nil是该类的唯一实例NilClass(请参见15.2.4),一个nil-expression对其进行评估(请参见11.5.4.8.2)。 除false和nil之外的其他对象均分类为真实对象。true是该类的唯一实例TrueClass(请参见15.2.5),true表达式将对其进行评估(请参见11.5.4.8.3)。 可执行的Ruby / Spec似乎同意: it "considers a non-nil and non-boolean object in expression result as true" do if mock('x') 123 else 456 end.should …
16 regex  ruby  boolean  jruby  yarv 


1
被定义的方法“…”在这里定义
Ruby 2.7刚刚发布,并附带了有关“位置和关键字参数分离”的这些新警告(请参见其Release Post)。我在玩它,发现还有另外一个警告,我听不懂。 例: def multiply(x:, y:) x * y end args = { x: 2, y: 3 } multiply(args) # ./warning.rb:7: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call # ./warning.rb:1: warning: The called method `multiply' is defined here …
13 ruby 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.