小编Sac*_*iya的帖子

在Rails中创建唯一令牌的最佳方法?

这就是我正在使用的.令牌不一定要被猜测,它更像是一个短网址标识符,而不是其他任何东西,我想保持简短.我已经按照我在网上找到的一些例子,如果发生碰撞,我认为下面的代码会重新创建令牌,但我不确定.不过,我很想看到更好的建议,因为边缘感觉有点粗糙.

def self.create_token
    random_number = SecureRandom.hex(3)
    "1X#{random_number}"

    while Tracker.find_by_token("1X#{random_number}") != nil
      random_number = SecureRandom.hex(3)
      "1X#{random_number}"
    end
    "1X#{random_number}"
  end
Run Code Online (Sandbox Code Playgroud)

我的令牌的数据库列是一个唯一的索引,我也在validates_uniqueness_of :token模型上使用,但因为这些是根据用户在应用程序中的操作自动批量创建的(他们下订单并购买令牌,基本上),它是让应用程序抛出错误是不可行的.

我猜,我也可以减少碰撞的几率,在最后添加另一个字符串,根据时间或类似的东西生成的东西,但我不希望令牌太长.

random guid ruby-on-rails ruby-on-rails-3

154
推荐指数
9
解决办法
11万
查看次数

模拟和存根

我真的不明白Mocks和Stubs是什么.我想知道我们在测试用例中何时,为何以及如何使用Mocks.我知道Ruby on Rails中的Mocks和Stubs有很好的框架,但不知道目的,我不愿意在我的应用程序中使用它们.

你能澄清一下Mocks和Stubs吗?请帮忙.

ruby ruby-on-rails mocking ruby-on-rails-3

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

使用apt-get install ruby​​ 2.0.0安装ruby成功但没有使用正确的ruby版本

嗨,我真的很喜欢linux.我目前正在数字海洋上部署应用程序,所以我暂时切换到linux ox.

我做到了

sudo apt-get install ruby 2.0.0 
Run Code Online (Sandbox Code Playgroud)

并正确安装,但当我做ruby-v我得到1.8.7版本.

我确信旧版本预先包装了薄荷.

如何在我的bash配置文件或linux启动文件中切换到ruby 2.0.0?

ruby linux ruby-on-rails rvm linux-mint

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

如何使用memcache加速rails/heroku

Heroku本身支持memcache作为插件.我的问题是,仍然是一个铁杆新手,我不知道如何使用memcache来加速我最耗时的请求(我知道他们是通过查看新的分析).我们应该在memcache上使用像'cache-money'这样的宝石吗?有人再使用act_as_cached吗?

我知道这是一个非常微不足道的问题.然而,在网上搜索了几个小时后,我找不到一个像样的教程.任何帮助/链接赞赏!

memcached caching ruby-on-rails heroku

7
推荐指数
1
解决办法
2465
查看次数

如何在heroku的database.yml中覆盖pool和reaping_frequency

我正在使用带有Rails 4.1.1和Ruby 2.1.1的heroku.我正在使用heroku的默认数据库配置.这就是我将database.yml放入.gitignore并且我不database.yml用于生产的原因.

我正面临着问题PG::ConnectionBad: PQsocket() can't get socket descriptor和解决我需要设置的错误reaping_frequency.

reaping_frequency可以告诉活动记录进行检查,看是否连接是挂起或死每隔N秒,终止它们.虽然很可能随着时间的推移,您的应用程序可能会挂起一些连接,但如果代码中的某些内容导致挂起连接,则收割机将无法永久解决问题.

现在我想将此配置添加到database.yml.

  reaping_frequency: 10
Run Code Online (Sandbox Code Playgroud)

所以我应该直接添加此配置database.yml以覆盖或是否有任何其他更好的方法将此频率设置为heroku?

提前感谢您的建议.

postgresql heroku heroku-postgres ruby-on-rails-4.1

6
推荐指数
1
解决办法
4155
查看次数

无法使用DigitalOcean在ubuntu 14.04中为activeadmin分配内存

我在bundle install使用Ubuntu 14.04 时面临以下错误DigitalOcean

Fetching source index from https://rubygems.org/
Fetching git://github.com/activeadmin/activeadmin.git
Retrying git clone 'git://github.com/activeadmin/activeadmin.git' "/home/sachin/.rvm/gems/ruby-2.1.1/cache/bundler/git/activeadmin-c24fcef949b2f1bbdf6b5a17650dcd86d73f2528" --bare --no-hardlinks --quiet due to error (2/3): Errno::ENOMEM Cannot allocate memory - git clone 'git://github.com/activeadmin/activeadmin.git' "/home/sachin/.rvm/gems/ruby-2.1.1/cache/bundler/git/activeadmin-c24fcef949b2f1bbdf6b5a17650dcd86d73f2528" --bare --no-hardlinks --quiet
Retrying git clone 'git://github.com/activeadmin/activeadmin.git' "/home/sachin/.rvm/gems/ruby-2.1.1/cache/bundler/git/activeadmin-c24fcef949b2f1bbdf6b5a17650dcd86d73f2528" --bare --no-hardlinks --quiet due to error (3/3): Errno::ENOMEM Cannot allocate memory - git clone 'git://github.com/activeadmin/activeadmin.git' "/home/sachin/.rvm/gems/ruby-2.1.1/cache/bundler/git/activeadmin-c24fcef949b2f1bbdf6b5a17650dcd86d73f2528" --bare --no-hardlinks --quiet
Unfortunately, a fatal error has occurred. Please see the Bundler
troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
/home/sachin/.rvm/gems/ruby-2.1.1@global/gems/bundler-1.7.12/lib/bundler/source/git/git_proxy.rb:114:in ``': Cannot …
Run Code Online (Sandbox Code Playgroud)

memory bundle ruby-on-rails digital-ocean

6
推荐指数
1
解决办法
1790
查看次数

如何使用带有 ruby​​ on Rails 的 sendy 发送交易电子邮件

我正在开发 ruby​​ on Rails 应用程序,并使用 sendy 和 amazon ses 进行营销活动。

我是否可以将此 sendy 服务器集成为我的交易电子邮件,我在 ruby​​ on Rails 开发中使用它来发送欢迎电子邮件、忘记密码和其他一些电子邮件?

如果可能的话,请为我提供一些有用的步骤,用于使用 ruby​​ on Rails 配置 sendy 来处理事务性电子邮件。

有人知道解决办法吗?

amazon-ses transactional-email ruby-on-rails-4 sendy

5
推荐指数
1
解决办法
1190
查看次数

如何检查docker容器内的ruby版本

我已经通过在 docker 文件下面创建来构建 docker 容器

# Select ubuntu as the base image
FROM ubuntu

# Install nginx, nodejs and curl
RUN apt-get update -q
RUN apt-get install -qy nginx
RUN apt-get install -qy curl
RUN apt-get install -qy nodejs
RUN echo "daemon off;" >> /etc/nginx/nginx.conf

# Install rvm, ruby, bundler
RUN curl -sSL https://get.rvm.io | bash -s stable
RUN /bin/bash -l -c "rvm requirements"
RUN /bin/bash -l -c "rvm install 2.1.0"
RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc" …
Run Code Online (Sandbox Code Playgroud)

ruby bash ruby-on-rails docker

3
推荐指数
1
解决办法
3933
查看次数

Rails 3 - 生产环境 - smtp电子邮件问题

我使用SMTP设置在轨道发送邮件3.它工作正常,当sendmailpostfix服务正在运行.但当我停止这两个服务,然后邮件停止发送并给我连接错误.

错误日志 -

ERROR -- : (Errno::ECONNREFUSED): Connection refused - Connection refused
org/jruby/ext/socket/RubyTCPSocket.java:126:in `initialize'
org/jruby/RubyIO.java:1178:in `open'
Run Code Online (Sandbox Code Playgroud)

ruby smtp ruby-on-rails actionmailer ruby-on-rails-3

3
推荐指数
1
解决办法
161
查看次数