我最近的Rails项目或多或少都在试验我在这个过程中要做很多事情并学习.我在我的gemfile中指定了最新版本的Ruby:
ruby '2.2.3'
我.ruby-version在项目中也有一个dotfile,其中包含以下内容:
2.2.3
除了明显的重复之外,这有什么问题?这两个公约的目的是什么?如果我只有一个列出我的Ruby版本的约定,为什么我应该有一个(Gemfile)而另一个(dotfile)?
在项目中同时使用这两种约定是否完美无缺?
我将成为这个实验项目的唯一维护者,并且不会觉得必须保持这个微妙的重复是一个问题.我不打算为这个项目升级Ruby,如果我这样做,我就不会记得在两个地方都这样做了.除了这个细节,我当然避免在我的应用程序的代码库中出现任何重复.
我似乎无法找到任何有关如何在Rails 5中使用自定义标头提交webform的信息.我希望我发送PUT请求的URL也会收到一些自定义标头.我很惊讶form_for没有争论.
我可以通过将表单提交到我在那里修改标题的操作来完成此操作,例如,request.headers['my-header'] = 'xyz'.然后我必须PUT在这个"中间"控制器动作中提出请求,我觉得这个额外的步骤是笨重和非常规的.
我也可以使用jQuery绑定到提交点击,并在通过JavaScript添加标题后提交表单数据.在这个过程中,我宁愿不涉及另一层(即JS).
我宁愿不做.有没有办法我可以使用Rails表单助手(或一些控制器助手)为表单提交的请求添加一些自定义标头?
基本上我想在去年获得一个随机的日期时间:
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) 我需要四舍五入到最接近的十分之一.我需要的是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.
我最近探索火力在一个环境的NodeJS托管应用程序作出反应.初始化firebase CLI工具创建了两个文件:
.firebaserc
firebase.json
Run Code Online (Sandbox Code Playgroud)
将这些文件提交到存储库的公认惯例是什么?没有?我搜索谷歌,具有讽刺意味的是没找到我想要的东西.
我在两台机器上工作,感觉就像.firebaserc是环境/机器特定的,因此不应该提交到存储库.如果我和其他开发人员一起开展这个项目,我觉得我希望firebase.json在环境/机器之间保持一致.我不希望其他开发人员firebase.json独立于代码库中的其他人进行更改.
因此,我想到的承诺firebase.json,并加入.firebaserc到.gitignore.
我正在使用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) 我有一个别名来查看我的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专家.
任何人都可以告诉我为什么这不作为别名?
所以我前几天正在审查PSR编码标准(我正式遵循),并且我总是理解所有事情的原因,并且大部分都是按照过去10年以来我所做的一切为非常相似的标准编写的在我的大学时代,我被强烈地逼迫了 - 它只是卡住了.
但是,我对PSR-2标准中的这个注释感到疑惑:
在命名空间声明之后必须有一个空行,并且在使用声明块之后必须有一个空行.
为什么是这样?我不反对它,但我确定有某种背景或历史可以解释,它从来没有真正跳到我身边.我想明显的原因是易读性,但我觉得这个标准有更深层次的原因.
虽然我在这里 - 有没有人知道有什么好的资源来解释所有PSR指南背后的逻辑?在试图说服别人跟随他们时,有一个官方的推理和历史导致了特定的标准是有用的,他们可能不相信它符合他们的最佳利益.
我正在使用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?也许我错过了我的语法等等.