小编Say*_*yuj的帖子

活动记录 - 查找今天之前创建的记录

我想获取created_at字段小于今天(日期)的所有记录.有什么像:

MyTable.find_by_created_at(< 2.days.ago)
Run Code Online (Sandbox Code Playgroud)

ruby activerecord

78
推荐指数
2
解决办法
4万
查看次数

Ruby多字符串替换

str = "Hello? World?"
Run Code Online (Sandbox Code Playgroud)

预期产出是:

"Hello:) World:("
Run Code Online (Sandbox Code Playgroud)

我可以做这个: str.gsub("?", ":)").gsub("?", ":(")

有没有其他方法可以在单个函数调用中执行此操作?就像是:

str.gsub(['s1', 's2'], ['r1', 'r2'])
Run Code Online (Sandbox Code Playgroud)

ruby string gsub

69
推荐指数
6
解决办法
6万
查看次数

Ruby - 用另一个字符串替换第一次出现的子字符串

a = "foobarfoobarhmm"

我希望输出为"fooBARfoobarhmm"

即只有第一次出现的"bar"应该用"BAR"代替.

ruby string replace

58
推荐指数
3
解决办法
5万
查看次数

Ruby - 获取哈希值

我喜欢哈希

{:key1 => "value1", :key2 => "value2"}

我有一个变量k,其值为'key1''key2'.

我想把k变量的值v.

有没有办法通过使用if或实现这一点case?单线解决方案是优选的.请帮忙.

ruby hash key-value

28
推荐指数
1
解决办法
8万
查看次数

Ruby - Module :: NoMethodError

我有一个这样的模块:

module Prober
  def probe_invoke(type, data = {})
    p = Probe.new({:probe_type => type.to_s,
        :data => data.to_json, :probe_status => 0, :retries => 0})
    p.save
  end
end
Run Code Online (Sandbox Code Playgroud)

我试图从我的主程序中访问这个:

require 'prober'
Prober.probe_invoke("send_sms", sms_text)
Run Code Online (Sandbox Code Playgroud)

但它会产生错误:

Prober的未定义方法`probe_invoke':模块(NoMethodError)

ruby module nomethoderror

27
推荐指数
3
解决办法
2万
查看次数

Ruby递归/克隆递归

我有一个哈希:

h = {'name' => 'sayuj', 
     'age' => 22, 
     'project' => {'project_name' => 'abc', 
                   'duration' => 'prq'}}
Run Code Online (Sandbox Code Playgroud)

我需要一个这个哈希的副本,更改不应该影响原始哈希.

当我尝试时,

d = h.dup # or d = h.clone
d['name'] = 'sayuj1'
d['project']['duration'] = 'xyz'

p d #=> {"name"=>"sayuj1", "project"=>{"duration"=>"xyz", "project_name"=>"abc"}, "age"=>22}
p h #=> {"name"=>"sayuj", "project"=>{"duration"=>"xyz", "project_name"=>"abc"}, "age"=>22}
Run Code Online (Sandbox Code Playgroud)

在这里,您可以看到project['duration']原始哈希中的更改是因为project是另一个哈希对象.

我想要散列dupedcloned递归.我怎样才能做到这一点?

ruby hash clone hash-of-hashes dup

23
推荐指数
1
解决办法
9428
查看次数

Ruby on Rails - 设计用户/ sign_out无法正常工作

我正在使用设计 sign_insign_up网址正在工作

但是,当我尝试网址时: http://localhost:3000/users/sign_out

它会产生路由错误

No route matches [GET] "/users/sign_out"
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

耙路线

rake routes
        new_user_session GET    /users/sign_in(.:format)           {:action=>"new", :controller=>"devise/sessions"}
            user_session POST   /users/sign_in(.:format)           {:action=>"create", :controller=>"devise/sessions"}
    destroy_user_session DELETE /users/sign_out(.:format)          {:action=>"destroy", :controller=>"devise/sessions"}
           user_password POST   /users/password(.:format)          {:action=>"create", :controller=>"devise/passwords"}
       new_user_password GET    /users/password/new(.:format)      {:action=>"new", :controller=>"devise/passwords"}
      edit_user_password GET    /users/password/edit(.:format)     {:action=>"edit", :controller=>"devise/passwords"}
                         PUT    /users/password(.:format)          {:action=>"update", :controller=>"devise/passwords"}
cancel_user_registration GET    /users/cancel(.:format)            {:action=>"cancel", :controller=>"devise/registrations"}
       user_registration POST   /users(.:format)                   {:action=>"create", :controller=>"devise/registrations"}
   new_user_registration GET    /users/sign_up(.:format)           {:action=>"new", :controller=>"devise/registrations"}
  edit_user_registration GET    /users/edit(.:format)              {:action=>"edit", :controller=>"devise/registrations"}
                         PUT    /users(.:format)                   {:action=>"update", :controller=>"devise/registrations"}
                         DELETE /users(.:format)                   {:action=>"destroy", :controller=>"devise/registrations"}
    status_message_index …
Run Code Online (Sandbox Code Playgroud)

ruby url ruby-on-rails devise

20
推荐指数
2
解决办法
2万
查看次数

如何获取列表的最后一个索引?

假设我有以下列表:

list1 = [1, 2, 33, 51]
                    ^
                    |
indices  0  1   2   3
Run Code Online (Sandbox Code Playgroud)

如何获取该列表的最后一个索引,在本例中为3?

python indexing list

18
推荐指数
4
解决办法
7万
查看次数

Readline在rvm中不起作用 - Ubuntu 11.10

我在我的ubyntu 11.10上使用rvm.我的readline无法正常工作,我试过ruby extconf.rb但它没有通过.输出如下:

$ ruby extconf.rb 
checking for tgetnum() in -lncurses... yes
checking for readline/readline.h... yes
checking for readline/history.h... yes
checking for readline() in -lreadline... no
checking for readline() in -ledit... no
checking for editline/readline.h... no
Run Code Online (Sandbox Code Playgroud)

我尝试安装libncurses5-dev和libreadline5-dev

$ sudo apt-get install libncurses5-dev libreadline5-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libreadline5-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or …
Run Code Online (Sandbox Code Playgroud)

ruby readline rvm

12
推荐指数
3
解决办法
7217
查看次数

Ruby - 将字符串转换为日期

我有一个像"2011-06-02T23:59:59 + 05:30"这样的字符串.

我想将其转换为日期格式,只需要解析日期"2011-06-02".

ruby date

11
推荐指数
2
解决办法
3万
查看次数