小编Tom*_*ogg的帖子

模型验证中的Rails国际化(I18n):可能与否?

我在模型中进行了以下验证:

validates_inclusion_of :whatever, :in => [true, false], :message => I18n.t('please_select_whatever')
Run Code Online (Sandbox Code Playgroud)

似乎翻译在生产模式下不起作用:在所有语言中,它始终是英语翻译(可能因为我将英语设置为我的应用程序中的默认语言环境......?).

所以我假设我们不能在模型中转换验证,因为模型只加载一次 - 当服务器被引导时(然后,将应用默认的语言环境).

我对吗?如果是的话,你会如何解决这个问题?

谢谢你的帮助!

validation model ruby-on-rails internationalization production-environment

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

SSH:生成公钥后出现"密码错误"

当我执行这些命令时(在第一个之后设置密码)...

$ ssh-keygen -t dsa
$ chmod 600 my_key
$ chmod 600 my_key.pub
Run Code Online (Sandbox Code Playgroud)

......然后,测试密码......

$ ssh-add my_key.pub
Run Code Online (Sandbox Code Playgroud)

......我一直在:

Bad passphrase, try again for my_key.pub:
Bad passphrase, try again for my_key.pub:
Bad passphrase, try again for my_key.pub:
Bad passphrase, try again for my_key.pub:
...
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

ssh passphrase public-key

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

如何使用Ruby检查正在运行的进程?

我使用调度程序(Rufus调度程序)每分钟启动一个名为"ar_sendmail"的进程(来自ARmailer).

当已经存在这样的进程以便不占用内存时,不应启动该进程.

如何检查此进程是否已在运行?之后发生的事情unless下面?

scheduler = Rufus::Scheduler.start_new

  scheduler.every '1m' do

    unless #[what goes here?]
      fork { exec "ar_sendmail -o" }
      Process.wait
    end

  end

end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails process rufus-scheduler

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

Nginx:欢迎来到nginx!页面一直显示

我已经尝试了超过一天的时间让Nginx和Passenger为我的Rails应用程序工作,但我得到的只是:Nginx欢迎页面.为什么?

我已经在默认位置安装了Nginx /opt/nginx,如下所示:

# Install passenger gem
$ gem install passenger

# Install dependencies for Nginx/Passenger
$ apt-get install libcurl4-openssl-dev

# Compile it
$ passenger-install-nginx-module
Run Code Online (Sandbox Code Playgroud)

而且(我认为)该文件的相关部分/opt/nginx/conf/nginx.conf如下所示:

http {
    passenger_root /usr/local/rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.29;
    passenger_ruby /usr/local/rvm/wrappers/ruby-2.0.0-p353/ruby;

    server {
        listen       80;
        server_name  www.my-domain.com;
        root /home/deploy/current/public;
        passenger_enabled on;

        location / {
            root   html;
            index  index.html index.htm;
            passenger_enabled on;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
            passenger_enabled on;
        }

        ...
Run Code Online (Sandbox Code Playgroud)

当我检查"根位置"(公共)时,我可以看到应用程序在那里(它与Capistrano一起部署):

$ ls /home/deploy/current/public
404.html  422.html  500.html  assets …
Run Code Online (Sandbox Code Playgroud)

ubuntu ruby-on-rails passenger nginx

11
推荐指数
1
解决办法
7708
查看次数

如何删除gem路径?

如何删除第二条路径(/home/tom/.gem/ruby/1.8)GEM PATHS:

这是输出$ gem env:

RubyGems Environment:

  - RUBYGEMS VERSION: 1.3.5
  - RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
     - /home/tom/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://gems.rubyforge.org/
Run Code Online (Sandbox Code Playgroud)

我很感激帮助!

ruby rubygems path

10
推荐指数
2
解决办法
8767
查看次数

Rails组/拥有/计数查询

鉴于如下情况:Companyhas_manyUsers

要获得拥有3个用户的公司,这可以有效地运作:

Company.joins(:users).group("companies.id").having("COUNT(users.id)=3")
Run Code Online (Sandbox Code Playgroud)

但是,获得拥有0个用户的公司(无)的最有效方法是什么?因为,显然,同样的方法不起作用(根据joins定义,不包括有0个用户的公司):

Company.joins(:users).group("companies.id").having("COUNT(users.id)=0")
Run Code Online (Sandbox Code Playgroud)

sql activerecord ruby-on-rails

10
推荐指数
1
解决办法
8970
查看次数

Rails 3.2.13/Devise 2.2.3:方法"authenticate_scope!" 抛出错误:参数数量错误(1表示0)

我使用Devise(2.2.3)并尝试使用此jQuery ajax调用为用户加载"编辑"表单:

$.ajax({
  type: 'GET',
  url: '/users/edit',
  data: {
    id: id
  }
});
Run Code Online (Sandbox Code Playgroud)

这将调用此before_filter ...

prepend_before_filter :authenticate_scope!, :only => [:edit, :update, :destroy]
Run Code Online (Sandbox Code Playgroud)

...来自宝石文件......

devise/app/controllers/devise/registrations_controller.rb

(see: https://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb)
Run Code Online (Sandbox Code Playgroud)

最终调用的方法是:

# Authenticates the current scope and gets the current resource from the session.
def authenticate_scope!
  send(:"authenticate_#{resource_name}!"), :force => true)
  self.resource = send(:"current_#{resource_name}")
end
Run Code Online (Sandbox Code Playgroud)

而我得到的错误是:

ArgumentError at /users/edit
============================

> wrong number of arguments (1 for 0)

(gem) devise-2.2.3/app/controllers/devise/registrations_controller.rb, line 116
-------------------------------------------------------------------------------

``` ruby
  111       signed_in_root_path(resource)
  112     end
  113   
  114     # Authenticates the current …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails argument-error devise

9
推荐指数
1
解决办法
1518
查看次数

Rails 4.2外键

Rails 4.2新增支持添加和删除外键(在迁移中),如:

# add a foreign key to `articles.author_id` referencing `authors.id`
add_foreign_key :articles, :authors
Run Code Online (Sandbox Code Playgroud)

我不明白的是:这是怎么回事

add_foreign_key :articles, :authors
Run Code Online (Sandbox Code Playgroud)

不同于此:

add_column :articles, :author_id, :integer
Run Code Online (Sandbox Code Playgroud)

谢谢你的任何澄清!

migration ruby-on-rails foreign-keys ruby-on-rails-4

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

RoR:如何在纯文本电子邮件中获取空/新行

我试图在纯文本电子邮件中找到一个空行.我已尝试使用\n \n并使用\ r \n但在这两种情况下,这些字符只显示为普通文本,而不是空行.

我究竟做错了什么?

(我正在Mozilla Thunderbird中以纯文本视图查看多部分电子邮件.)

感谢您的任何帮助!汤姆

email newline ruby-on-rails plaintext

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

rbenv ruby​​ 2.7.2 安装失败:“BUILD FAILED”

我在尝试使用 rbenv 安装 ruby​​ 2.7.2 时遇到这个奇怪的错误。

有人知道是什么问题吗?

$ rbenv install 2.7.2
Installing ruby-2.7.2...

BUILD FAILED (Ubuntu 20.04 using ruby-build 20201005-4-g4761049)

Inspect or clean up the working tree at /tmp/ruby-build.20201106211003.49727.I05SRV
Results logged to /tmp/ruby-build.20201106211003.49727.log

Last 10 log lines:
    from ./tool/rbinstall.rb:846:in `block (2 levels) in install_default_gem'
    from ./tool/rbinstall.rb:279:in `open_for_install'
    from ./tool/rbinstall.rb:845:in `block in install_default_gem'
    from ./tool/rbinstall.rb:835:in `each'
    from ./tool/rbinstall.rb:835:in `install_default_gem'
    from ./tool/rbinstall.rb:799:in `block in <main>'
    from ./tool/rbinstall.rb:950:in `block in <main>'
    from ./tool/rbinstall.rb:947:in `each'
    from ./tool/rbinstall.rb:947:in `<main>'
make: *** [uncommon.mk:373: do-install-all] Error 1 …
Run Code Online (Sandbox Code Playgroud)

ruby rbenv

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

如何在重定向完成后执行一些jQuery或JavaScript代码

我怎样才能像jQuery/JS重定向一样执行jQuery/JS代码...

$(location).attr('href','/target_path');
Run Code Online (Sandbox Code Playgroud)

...要么...

window.location.href = "/target_path";
Run Code Online (Sandbox Code Playgroud)

...已经完成加载新页面?

具体来说,我需要传递一条警告消息并将其插入并在新页面上显示(包含在某些HTML中).

javascript jquery redirect

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

Rails gem"friendly_id":如何在创建对象之前获取slug的实时预览

使用Rails gem"friendly_id",是否可以获得要创建的slug的"实时预览"?在保存对象之前,即(并在使用ajax请求键入时返回)?

如果是这样,怎么样?

gem ruby-on-rails live-preview slug friendly-id

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

Rails 6:如何有条件地验证关联的存在?

我有以下2个型号:

class Offer < ApplicationRecord
  has_many :bookings
end

class Booking < ApplicationRecord
  belongs_to :offer
end
Run Code Online (Sandbox Code Playgroud)

当我尝试保存没有 Offer_id 的 Booking 对象时,Rails 会抛出验证错误“需要 Offer”。

但我不会主动验证关联对象是否存在(我打算稍后为此关联添加条件验证)。

这是否意味着 Rails 6 默认情况下会验证所有关联的存在?如果是,我怎样才能使这样的验证成为有条件的?

validation associations ruby-on-rails-6

2
推荐指数
1
解决办法
1770
查看次数