小编Ari*_*rif的帖子

Ruby中lambda和 - >运算符的区别

以下两个范围生成相同的结果,哪种语法更可取,还有其他区别吗?

scope :paid, lambda { |state| where(state: state) }

scope :paid, ->(state) { where(state: state) }
Run Code Online (Sandbox Code Playgroud)

ruby lambda ruby-on-rails

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

更改设计消息"已发送电子邮件"

我在我的ruby on rails应用程序中使用了devise gem.在用户注册时,如果已存在电子邮件,则会显示默认消息"已收到电子邮件".

我在en.yml中更改了此消息

  activerecord:
    errors:
      messages:
        taken: "User with same email already exists. Please try with another email address."
Run Code Online (Sandbox Code Playgroud)

在视图中我使用过:

<div class="notice"><%= devise_error_messages! %></div>
Run Code Online (Sandbox Code Playgroud)

现在我得到的信息是

"Email User with same email already exists. Please try with another email address."
Run Code Online (Sandbox Code Playgroud)

问题是在开始时附加了"电子邮件".

有没有其他方法可以更改此默认消息?

ruby-on-rails devise

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

每页自定义kaminari宝石

我正在使用Kaminari gem和rails 3.2应用程序.它工作正常.现在我想用[5,10,15,20]选项添加每页自定义下拉列表.对于每页选择的分页链接应保留每页值.实现此每页自定义功能的最佳方法是什么?

rubygems ruby-on-rails-3.2

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

在Ruby中组合数组

以下数组包含两个数组,每个数组有5个整数值:

[[1,2,3,4,5],[6,7,8,9,10]]
Run Code Online (Sandbox Code Playgroud)

我希望以这样的方式组合它们,即它通过组合索引0,1 ..到4的两个数组的值来生成五个不同的数组.

输出应该是这样的:

[[1,6],[2,7],[3,8],[4,9],[5,10]]
Run Code Online (Sandbox Code Playgroud)

有没有最简单的方法呢?

ruby

6
推荐指数
2
解决办法
127
查看次数

Rails 4 ActiveRecord 时间间隔查询

我有一个带有order_date日期时间列的订单表。需要一个查询来获取特定时间范围内所有日期的记录。

示例:获取东部时间早上 7 点到东部时间上午 9 点之间所有日期的订单。

就像是:

Order.where('time(order_date) BETWEEN ? AND ?', '7am', '9am')
Run Code Online (Sandbox Code Playgroud)

开始和结束时间来自文本字段,用户可以在其中输入凌晨 2 点、下午 3 点、上午 6 点等字符串值

ruby ruby-on-rails-4

6
推荐指数
2
解决办法
2351
查看次数

Rails 4:检查今天是星期日,月15日还是月末

sidekiq工作人员将电子邮件中的PDF附件发送给客户.和工人每天运行检查,如果其周日然后发送每周报告,如果今天是本月15日再双月报告,如果本月的最后一天,然后月度报告.条件看起来像这样:

if sunday?
  # send weekly
elsif 15th of month
  # send Bi-monthly
elsif last_day_of_month
  # send Monthly
end
Run Code Online (Sandbox Code Playgroud)

如何检查它的星期日,月份的15号和月的最后一天?

ruby ruby-on-rails

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

git与--squash合并后比较分支

我有一个父分支A和一个子分支B。在分支B中,我有两个单独的提交。我像这样将南瓜中的B分支合并到A中

git merge --squash B 
Run Code Online (Sandbox Code Playgroud)

当我将分支A与分支B进行比较时:

git log A..B
Run Code Online (Sandbox Code Playgroud)

它显示了来自分支B的两个提交都未合并。我如何将其与父分支A的压缩提交进行比较?这样两个分支之间的响应就不会有差异

谢谢

git git-merge git-squash

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

Carrierwave 不同文件类型的不同大小限制

我有一个允许的文件扩展名列表

def extension_white_list
  %w(pdf doc docx xls xlsx html tif gif jpg jpeg png bmp rtf txt)
end
Run Code Online (Sandbox Code Playgroud)

和模型中定义的大小限制验证

mount_uploader :inv_file, InvFileUploader

validates_size_of :inv_file, maximum: 25.megabyte, message: "Attachment size exceeds the allowable limit (25 MB)."
Run Code Online (Sandbox Code Playgroud)

它工作正常,并且大小限制验证适用于所有定义的文件扩展名。

但我想对不同的文件应用不同的大小限制,即

  • 5MB 限制(png 和 jpeg)
  • PDF 限制为 20MB
  • 所有其他文件扩展名的 25MB 限制

我怎样才能做到这一点?

ruby-on-rails carrierwave

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

获取必填字段列表

Post使用以下方法将模型的所有属性显示为 HTML 表头:

Post.column_names #=> ['id','name','status', 'created_at',....]
Run Code Online (Sandbox Code Playgroud)

但我只需要选择Post模型中需要的那些字段,即validates: presence: true

有没有办法选择必填字段?

ruby-on-rails

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

检查值是否小于数组的任何值

我有一个时间戳'2016-02-08 16:23:53'和一个包含不同时间戳的数组['2016-02-09 14:23:53', '2015-02-08 16:23:53', '2016-02-08 16:22:53'].

检查值是否小于数组中的任何值并返回truefalse?的最简单方法是什么?

ruby

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