我在模型中进行了以下验证:
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
当我执行这些命令时(在第一个之后设置密码)...
$ 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)
我究竟做错了什么?
我使用调度程序(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) 我已经尝试了超过一天的时间让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) 如何删除第二条路径(/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)
我很感激帮助!
鉴于如下情况: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) 我使用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) 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)
谢谢你的任何澄清!
我试图在纯文本电子邮件中找到一个空行.我已尝试使用\n \n并使用\ r \n但在这两种情况下,这些字符只显示为普通文本,而不是空行.
我究竟做错了什么?
(我正在Mozilla Thunderbird中以纯文本视图查看多部分电子邮件.)
感谢您的任何帮助!汤姆
我在尝试使用 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) 我怎样才能像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中).
使用Rails gem"friendly_id",是否可以获得要创建的slug的"实时预览"?在保存对象之前,即(并在使用ajax请求键入时返回)?
如果是这样,怎么样?
我有以下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 默认情况下会验证所有关联的存在?如果是,我怎样才能使这样的验证成为有条件的?
ruby ×2
validation ×2
activerecord ×1
associations ×1
devise ×1
email ×1
foreign-keys ×1
friendly-id ×1
gem ×1
javascript ×1
jquery ×1
live-preview ×1
migration ×1
model ×1
newline ×1
nginx ×1
passenger ×1
passphrase ×1
path ×1
plaintext ×1
process ×1
public-key ×1
rbenv ×1
redirect ×1
rubygems ×1
slug ×1
sql ×1
ssh ×1
ubuntu ×1