小编Eam*_*roy的帖子

为什么Rails服务器在TCP上列出

我正在一个项目,它是新项目的更新版本。使用流浪汉加载虚拟环境以及运行时

RAILS_ENV=development bundle exec rails s
Run Code Online (Sandbox Code Playgroud)

返回以下内容:

=> Booting Puma
=> Rails 5.0.0.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.0 (ruby 2.3.3-p222), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
Run Code Online (Sandbox Code Playgroud)

当我访问浏览器时,我尝试了localhost:3000和127.0.0.1:3000,但一直得到:

ERR_CONNECTION_REFUSED
Run Code Online (Sandbox Code Playgroud)

在此项目的先前版本中,已在其他资源库上加载了该资源,可以通过这些URL进行访问。该项目已更新到Rails 5,但不知道为什么它要监听TCP而不是HTTP。有什么建议么?

ruby-on-rails

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

ActiveRecord::Base.connection.execute(sql).each 不返回数据

作为我正在处理的 API 应用程序的一部分,进行调用需要进行身份验证。我正在尝试使用 curl 命令进行最基本的调用,包括标头基本身份验证。在用户尝试访问任何安全调用时调用的身份验证块中,有以下代码:

unless credential = cache.fetch("credential::#{auth.credentials[0]}:#{Digest::MD5.hexdigest(auth.credentials[1])}")
  sql = "SELECT * FROM credentials WHERE username = '#{auth.credentials[0]}' AND passwd_hashed = '#{Digest::MD5.hexdigest(auth.credentials[1])}'"
  ActiveRecord::Base.connection.execute(sql).each do |row|
    credential = row
  end
end
Run Code Online (Sandbox Code Playgroud)

出于某种原因,这不会返回任何结果。我已经从这个块中输出了 sql 并在 postgres 中运行它,它返回所需的行。我已经测试了我的环境,以确保我连接到了正确的数据库。除此之外,我不确定问题是什么或如何诊断它。任何帮助,将不胜感激。

关于如何从该块返回错误的任何建议也将有很大帮助。尝试添加异常处理,但似乎无法获得正确的语法。

postgresql activerecord ruby-on-rails

4
推荐指数
1
解决办法
4471
查看次数

无法修剪电子邮件输入中的空格

我试图修剪电子邮件输入上的尾随空格,但相信将修剪应用于电子邮件输入存在问题。任何人都可以解释为什么会出现这种情况,或者我的假设是否错误。应用此代码后,该代码适用于密码字段,但不适用于电子邮件字段。

编辑:

它是一个 Ruby on Rails 应用程序,但创建的 HTML 如下所示:

看法:

<input class="mandatory form-control form-control" id="user_email" maxlength="250" name="user[email]" required="required" type="email">
<input class="mandatory form-control form-control" id="user_password" maxlength="20" name="user[password]" required="required" type="password">
Run Code Online (Sandbox Code Playgroud)

jQuery:

$('input').blur(function()
{
    this.value=$(this).val().trim();
});
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个,但仍然没有运气。它会去除文本之间的空格,但仍然不会删除尾随的空格:

$('input[type=email]').on('blur', function () 
{
    $(this).val($(this).val().replace(/ /g,''));
})
Run Code Online (Sandbox Code Playgroud)

jquery

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

标签 统计

ruby-on-rails ×2

activerecord ×1

jquery ×1

postgresql ×1