小编jab*_*jac的帖子

rails 4.0通过mongoid处理空的mongodb结果查询

我正在尝试使用mongoid和mongodb而不是普通数据库来浏览Michael Hartl的rails4教程.我需要设置用户登录和注销的地方,这就是我遇到的问题.下面是我用来检查用户的电子邮件是否已注册的代码.

user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
  # sign in and load user page
else
  flash[:error] = 'Invalid email/password combination'
  render 'new'
  # error and re-render signin
end
Run Code Online (Sandbox Code Playgroud)

不幸的是,我遇到了一个未找到的文档,因为这是查询变为空白时返回的内容.它应该进入其他但是我得到一个rails错误页面,它返回未找到的mongoid错误文档.我如何避免这种情况并让代码执行else语句中的代码呢?

谢谢!

ruby-on-rails mongodb mongoid

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

安装rails gem时出错

所以我在VPS上安装了ruby 2.2.0,我正在尝试安装rails.唯一的问题是,当我做一个gem安装rails它失败了.我用回溯尝试了它,以下是我得到的:

usera@node3:~$ gem install --backtrace rails
ERROR:  While executing gem ... (SocketError)
    getaddrinfo: Name or service not known
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:791:in `send'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:791:in `send'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:672:in `request'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:528:in `block in fetch_resource'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:1096:in `block (3 levels) in resolv'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:1094:in `each'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:1094:in `block (2 levels) in resolv'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:1093:in `each'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:1093:in `block in resolv'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:1091:in `each'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:1091:in `resolv'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:519:in `fetch_resource'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:509:in `each_resource'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/resolv.rb:490:in `getresource'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/remote_fetcher.rb:92:in `api_endpoint'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/source.rb:46:in `api_uri'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/source.rb:85:in `dependency_resolver_set'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/resolver/best_set.rb:23:in `block in pick_sets'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/source_list.rb:97:in `each'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/source_list.rb:97:in `each_source'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/resolver/best_set.rb:22:in `pick_sets'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/resolver/best_set.rb:28:in `find_all'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/resolver/installer_set.rb:151:in `find_all'
        /home/usera/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/resolver/installer_set.rb:54:in …
Run Code Online (Sandbox Code Playgroud)

gem ruby-on-rails-4

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

如何将循环合并到bash别名中

我正在尝试创建一个别名,该别名在几个文件夹中循环并运行一个build命令,但我一直得到显示的输出for >

这是我的.zshrc文件中提供的功能

recurse_build () {
    for src in `ls`; do 
        cd $src; build; cd ..
    done
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试做一个别名

alias br='recurse_build'
Run Code Online (Sandbox Code Playgroud)

但我最终得到以下提示

for > 
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

编辑:修复函数中的语法错误。键入而不是复制粘贴是一种糟糕的情况

bash alias for-loop

0
推荐指数
1
解决办法
1912
查看次数

标签 统计

alias ×1

bash ×1

for-loop ×1

gem ×1

mongodb ×1

mongoid ×1

ruby-on-rails ×1

ruby-on-rails-4 ×1