小编chr*_*mer的帖子

如何覆盖rails命名约定?

我有一个名为"服装"的模特,我想成为单件(一件衣服).默认情况下,rails表示复数是衣服.对或错,我认为如果复数是"衣服",它将更具可读性.

如何覆盖复数命名约定?我可以在模型中做到这一点,所以我不必一遍又一遍地做吗?这将如何改变路由的处理方式(我使用的是宁静的架构)?

ruby-on-rails naming-conventions pluralize

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

如何过滤rails中的参数?

Rails内置了日志过滤功能,因此您无需记录密码和信用卡.效果很好但是当你想要触发自定义日志(比如发送电子邮件)并发送自己的参数或其他数据时,参数显然不会自动过滤.我一直在挖掘并尝试在rails源中找到它,但到目前为止还没有运气.

我已经配置了rails来过滤参数,如下所示,它可以正常工作以保持数据不受rails日志的影响:

config.filter_parameters += [:password, :password_confirmation, :credit_card]
Run Code Online (Sandbox Code Playgroud)

如何将params哈希值中的敏感数据转储到电子邮件,api调用或自定义(非rails)日志之前?

ruby filtering ruby-on-rails

43
推荐指数
4
解决办法
4万
查看次数

使空白参数[]为零

当用户提交表单并将某些字段留空时,它们将在数据库中保存为空白.我想遍历params [:user]集合(例如),如果字段为空,则在更新属性之前将其设置为nil.我无法弄清楚如何做到这一点,因为我知道迭代的唯一方法是创建新对象:

coll = params[:user].each do |c|
    if c == ""
       c = nil
    end
end
Run Code Online (Sandbox Code Playgroud)

谢谢.

ruby forms collections ruby-on-rails

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

基本Rails 404错误页面

我一直在寻找一个简单的答案,这是一个非常漫长的时间,似乎这一点非常明显和简单,因为没有人有一个简单的,白痴证明教程.

无论如何,我想做的就是有一个单独的404.html静态页面,无论何时抛出任何错误都会加载.理想情况下,这应该仅在生产和分期中发生.

我觉得这应该是最简单的事情......但我无法弄明白.

任何帮助深表感谢.

routing ruby-on-rails http-status-code-404

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

如何调试慢速rails应用程序启动时间?

我们的rails应用程序一旦加载就很好而且速度很快但启动速度非常慢.控制台,乘客等都需要大约10秒的时间才能完成.似乎比应有的方式更多.

我应该使用哪些工具或方法来磨练最慢的部件?通常的嫌疑人是什么?

ruby console boot performance ruby-on-rails

24
推荐指数
1
解决办法
7450
查看次数

为什么此查询会导致锁定等待超时?

我们的团队刚刚花了上周调试并试图找到许多mysql锁定超时和许多极长运行查询的来源.最后看来这个查询是罪魁祸首.

mysql> explain 

SELECT categories.name AS cat_name, 
COUNT(distinct items.id) AS category_count 
FROM `items` 
INNER JOIN `categories` ON `categories`.`id` = `items`.`category_id` 
WHERE `items`.`state` IN ('listed', 'reserved') 
   AND (items.category_id IS NOT NULL) 
GROUP BY categories.name 
ORDER BY category_count DESC 
LIMIT 10\G

*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: items
         type: range
possible_keys: index_items_on_category_id,index_items_on_state
          key: index_items_on_category_id
      key_len: 5
          ref: NULL
         rows: 119371
        Extra: Using where; Using temporary; Using filesort
*************************** 2. row ***************************
           id: 1
  select_type: SIMPLE
        table: categories
         type: eq_ref …
Run Code Online (Sandbox Code Playgroud)

mysql

12
推荐指数
1
解决办法
913
查看次数

如何使用Rails解决MySQL Lock Timeout错误?

突然(没有对相关代码进行任何更改)我们通过活动记录获得锁定错误,例如:

ActiveRecord::StatementInvalid: Mysql2::Error: Lock wait timeout exceeded; 
try restarting transaction: UPDATE `items` SET `state` = 'reserved', `updated_at` = '2012-09-15 17:58:21' WHERE `items`.`id` = 248220
Run Code Online (Sandbox Code Playgroud)

ActiveRecord::StatementInvalid: Mysql2::Error: Lock wait timeout exceeded; 
try restarting transaction: DELETE FROM `sessions` WHERE `sessions`.`id` = 41997883
Run Code Online (Sandbox Code Playgroud)

我们没有在这两种模型中进行自己的交易,因此唯一的交易是内置轨道交易.流量或请求量没有激增.

这些错误似乎是当"新"查询试图在锁定的表上运行并且必须等待时,我们如何看待它正在等待什么?我们如何确定代码的哪一部分发出了长时间锁定表的查询?

关于我们在哪里可以看到或如何调查其原因的任何想法?

mysql locking ruby-on-rails

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

在ruby中运行系统命令并与之交互

我需要在命令行上运行一个命令,要求用户响应.万一它有助于命令是:

gpg --recipient "Some Name" --encrypt ~/some_file.txt
Run Code Online (Sandbox Code Playgroud)

当你运行它时,它警告某事然后问:

无论如何使用这个键?(Y/N)

回答'y'让它正确完成.我一直在尝试使用open4 gem,但我无法正确指定'y'.这是我尝试过的:

Open4::popen4(cmd) do |pid, stdin, stdout, stderr|
  stdin.puts "y"
  stdin.close

  puts "pid        : #{ pid }"
  puts "stdout     : #{ stdout.read.strip }"
  puts "stderr     : #{ stderr.read.strip }"
end
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我正在做什么甚至可能?

ruby command-line pgp command-line-interface

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

如何找到特定的延迟作业(不是id)?

Delayed :: Job将您的类,方法和参数序列化到处理程序字段中.我们目前正在将这种序列化方法硬编码到我们的代码中.这很糟糕.

我们应该如何构建处理程序,以便查找现有的排队作业?

ruby ruby-on-rails delayed-job

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

获取扬声器音频信号然后将其流出

我正在尝试构建我认为是基本应用程序的东西.好吧,两个应用程序一个用于Windows,一个用于OS X.我想捕获正在播放的音频信号(即,如果用户正在播放他/她的扬声​​器音乐).然后取出该信号并将其流出,以便另一台计算机可以"收听".另一台计算机是Windows或OS X.

  1. 有关如何获取音频信号的任何想法?
  2. 没有第三方插件的流媒体音频最有效的方法是什么?如果有一个开源解决方案,我会感兴趣.

谢谢!

克里斯

windows audio macos audio-streaming

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