小编Tod*_*odd的帖子

在Gemfile和.ruby-version Dotfile中列出Ruby版本是不好的做法吗?

我最近的Rails项目或多或少都在试验我在这个过程中要做很多事情并学习.我在我的gemfile中指定了最新版本的Ruby:

ruby '2.2.3'

.ruby-version在项目中也有一个dotfile,其中包含以下内容:

2.2.3

除了明显的重复之外,这有什么问题?这两个公约的目的是什么?如果我只有一个列出我的Ruby版本的约定,为什么我应该有一个(Gemfile)而另一个(dotfile)?

在项目中同时使用这两种约定是否完美无缺?

我将成为这个实验项目的唯一维护者,并且不会觉得必须保持这个微妙的重复是一个问题.我不打算为这个项目升级Ruby,如果我这样做,我就不会记得在两个地方都这样做了.除了这个细节,我当然避免在我的应用程序的代码库中出现任何重复.

ruby convention ruby-on-rails dotfiles gemfile

19
推荐指数
3
解决办法
2162
查看次数

Rails 5:表单如何使用自定义HTTP标头提交?

我似乎无法找到任何有关如何在Rails 5中使用自定义标头提交webform的信息.我希望我发送PUT请求的URL也会收到一些自定义标头.我很惊讶form_for没有争论.

我可以通过将表单提交到我在那里修改标题的操作来完成此操作,例如,request.headers['my-header'] = 'xyz'.然后我必须PUT在这个"中间"控制器动作中提出请求,我觉得这个额外的步骤是笨重和非常规的.

我也可以使用jQuery绑定到提交点击,并在通过JavaScript添加标题后提交表单数据.在这个过程中,我宁愿不涉及另一层(即JS).

我宁愿不做.有没有办法我可以使用Rails表单助手(或一些控制器助手)为表单提交的请求添加一些自定义标头?

webforms ruby-on-rails http-headers ruby-on-rails-5

15
推荐指数
1
解决办法
2209
查看次数

如何在Rails中将随机DateTime四舍五入到小时开始?

基本上我想在去年获得一个随机的日期时间:

rand(1.year).ago  #=> Sun, 22 Sep 2013 18:37:44 UTC +00:00 (example)
Run Code Online (Sandbox Code Playgroud)

但是,如何指定或限制时间?例如:

Sun, 22 Sep 2013 18:00:00 UTC +00:00
Sat, 02 Nov 2013 10:00:00 UTC +00:00
Fri, 12 Apr 2013 21:00:00 UTC +00:00
Run Code Online (Sandbox Code Playgroud)

ruby datetime ruby-on-rails date

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

四舍五入到最近的十分之一?

我需要四舍五入到最接近的十分之一.我需要的是ceil精确到小数点后第一位.

例子:

10.38 would be 10.4
10.31 would be 10.4
10.4 would be 10.4
Run Code Online (Sandbox Code Playgroud)

因此,如果它是超过十分之一的任何数量,它应该被四舍五入.

我正在运行Ruby 1.8.7.

ruby math rounding

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

在NodeJS应用程序中提交firebase文件的做法是什么?

我最近探索火力在一个环境的NodeJS托管应用程序作出反应.初始化firebase CLI工具创建了两个文件:

.firebaserc
firebase.json
Run Code Online (Sandbox Code Playgroud)

将这些文件提交到存储库的公认惯例是什么?没有?我搜索谷歌,具有讽刺意味的是没找到我想要的东西.


我在两台机器上工作,感觉就像.firebaserc是环境/机器特定的,因此不应该提交到存储库.如果我和其他开发人员一起开展这个项目,我觉得我希望firebase.json在环境/机器之间保持一致.我不希望其他开发人员firebase.json独立于代码库中的其他人进行更改.

因此,我想到的承诺firebase.json,并加入.firebaserc.gitignore.

repository gitignore firebase google-cloud-platform

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

Rails 5模型对象未显示所有Devise属性

我正在使用Rails 5 API和设计.我有一个User模特.架构看起来像这样.

create_table "users", force: :cascade do |t|
    t.string   "email",                  default: "", null: false
    t.string   "encrypted_password",     default: "", null: false
    t.string   "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.integer  "sign_in_count",          default: 0,  null: false
    t.datetime "current_sign_in_at"
    t.datetime "last_sign_in_at"
    t.inet     "current_sign_in_ip"
    t.inet     "last_sign_in_ip"
    t.datetime "created_at",                          null: false
    t.datetime "updated_at",                          null: false
    t.index ["email"], name: "index_users_on_email", unique: true, using: :btree
    t.index ["reset_password_token"], name: "index_users_on_reset_password_token",    unique: true, using: :btree
  end
Run Code Online (Sandbox Code Playgroud)

但我遇到的问题是Rails只显示:id , :email , :created_at , :updated_at属性作为模型的一部分.例如,在rails控制台中

 User.new
 => #<User …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise ruby-on-rails-5

7
推荐指数
3
解决办法
1514
查看次数

在别名中使用带引号和转义字符的sed

我有一个别名来查看我的apache错误日志,它使用sed将换行符格式化为换行符以便更好地显示.通过命令行输入时,以下命令完全正常,但不能作为别名.每次运行时,我都需要打开我的.profile,复制别名的内容,然后将其粘贴到命令行中.

tail -f /var/log/httpd/my-sandbox-error_log | sed -e 's/\\n/\n/g'
Run Code Online (Sandbox Code Playgroud)

别名:

alias elog="tail -f /var/log/httpd/my-sandbox-error_log | sed -e 's/\\n/\n/g'"
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多方法,交换了引用字符,并且很多地尝试了转义字符.似乎我永远不会得到我的别名来使用sed搜索/替换(错误日志是有尾的,没有换行格式).我确定有一些微不足道的遗失,我很天真.我不是unix/linux专家.

任何人都可以告诉我为什么这不作为别名?

apache bash profile alias sed

5
推荐指数
1
解决办法
2972
查看次数

PHP:PSR-2:为什么命名空间/使用声明后的空白行?

所以我前几天正在审查PSR编码标准(我正式遵循),并且我总是理解所有事情的原因,并且大部分都是按照过去10年以来我所做的一切为非常相似的标准编写的在我的大学时代,我被强烈地逼迫了 - 它只是卡住了.

但是,我对PSR-2标准中的这个注释感到疑惑:

在命名空间声明之后必须有一个空行,并且在使用声明块之后必须有一个空行.

为什么是这样?我不反对它,但我确定有某种背景或历史可以解释,它从来没有真正跳到我身边.我想明显的原因是易读性,但我觉得这个标准有更深层次的原因.

虽然我在这里 - 有没有人知道有什么好的资源来解释所有PSR指南背后的逻辑?在试图说服别人跟随他们时,有一个官方的推理和历史导致了特定的标准是有用的,他们可能不相信它符合他们的最佳利益.

php standards coding-style psr-2

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

PHP:使用动态类名称调用类的静态方法,前提是PHP 5.3

我正在使用php 5.2.6处理遗留代码库的项目.该项目的一部分涉及类似于使用一个PHP类与另一个PHP类的A/B测试.这两个类具有许多相同的函数名,具有非常相似的签名,但方法中的方法不同.我想知道是否可以使用基于动态/变量的类名称在类中调用静态方法.

例如,id喜欢将类名设置为:

$class = isset($some_condition) && $some_condition ? 'NewClassName' : 'LegacyClassName';
Run Code Online (Sandbox Code Playgroud)

...然后调用函数:

$class::myStaticFunction();
Run Code Online (Sandbox Code Playgroud)

我知道这可以用call_user_func()完成,但我很难找到替代方法(如果有的话).我只是宁愿不用正则表达式用call_user_func()语句替换对遗留类的所有调用.

例如,

$stuff = call_user_func($class . '::myStaticFunction()'); 
Run Code Online (Sandbox Code Playgroud)

......工作得很好.

有没有人知道是否有更简单的表达方式:$ dynamicClassName :: staticFunction()PHP 5.2?也许我错过了我的语法等等.

php legacy static-methods dynamic-class

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