我发现了一个奇怪的行为,RVM不知道如何处理它.
看来RVM不能自动更改它的gemset根据in .ruby-version&.ruby-gemsetif我是否正好在项目的根目录中打开终端.请回顾一下我的意思
# open a terminal directly in terminal_ui directory, which contains .ruby-version & .ruby-gemset
ls -a # ... .ruby-version .ruby-gemset
rvm gemset list
gemsets for ruby-2.2.1 (found in /home/epic/.rvm/gems/ruby-2.2.1)
=> (default)
fasteria
global
terminal
terminal_ui
# but if I cd to the top and then back again, my gemset will be
cd ../
cd terminal_ui
rvm gemset list
gemsets for ruby-2.2.1 (found in /home/epic/.rvm/gems/ruby-2.2.1)
(default)
fasteria
global
terminal
=> terminal_ui
Run Code Online (Sandbox Code Playgroud)
有用的信息:
cat .ruby-version …Run Code Online (Sandbox Code Playgroud) 我安装了一个名为的程序zeus。它允许我运行以下命令:
zeus parallel_rspec spec/
Run Code Online (Sandbox Code Playgroud)
哪里parallel_rspec是由zeus运行的命令,是命令spec/所必需的目录parallel_rspec。
我在自己的别名.profile:
alias rsp='zeus parallel_rspec'
Run Code Online (Sandbox Code Playgroud)
因此,我可以运行以下命令:
rsp spec/ # => equal to `zeus parallel_rspec spec/`
Run Code Online (Sandbox Code Playgroud)
但是spec/目录是常见的(95%的情况)。默认情况下,如何使我的rsp别名通过spec/文件夹参数(如果未传递其他名称,如spec/blablabla)?
我需要一个方法,它将获取一个哈希并返回一个哈希,其哈希值来自旧哈希,值是旧哈希中数组的大小.也就是说,
{ 1 => [1,1,1], 2 => [3,4,5], 7 => [9,12] }
# return
{ 1 => 3, 2 => 3, 7 => 2 }
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个?
我有一个req_headers像元组一样的凤凰列表{key, value}.如何通过列表中的键获取元组的值?像那样:
[{"host", "localhost:4000"}, {"user-agent", "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0"}, {"accept", "application/json, text/plain, */*"}, {"accept-language", "en-US,en;q=0.5"}, {"accept-encoding", "gzip, deflate"}, {"content-type", "application/json;charset=utf-8"}, {"referer", "http://localhost:4000/"}, {"content-length", "16"}, {"connection", "keep-alive"}]
Run Code Online (Sandbox Code Playgroud)
我想获取密钥"host"的值,即" http:// localhost:4000 ".我怎样才能做到这一点?
非常简单的问题,我在exfile库上工作时注意到了它.
该表达式返回:
is_atom(nil) # => true
Run Code Online (Sandbox Code Playgroud)
这有点不可预测.我的问题是:它是如何发生的?为什么会回来 true?
我之所以学习灵丹妙药只是因为互联网上的很多文章都很有希望它的响应时间不到一毫秒.我昨天构建了我的第一个应用程序,我发现它的性能比rails更快.发生了什么?
让我来解释一下我的应用 它实现了ecto-secure-password包提供的基本认证机制:
defmodule HelloPhoenix.User do
use HelloPhoenix.Web, :model
use SecurePassword
schema "users" do
field :first_name, :string
field :last_name, :string
field :username, :string
has_secure_password
end
end
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
defmodule HelloPhoenix.SessionController do
use HelloPhoenix.Web, :controller
def create(conn, %{ "session" => %{ "username" => username, "password" => password }}) do
if user = HelloPhoenix.User.authenticate(HelloPhoenix.Repo.get_by(HelloPhoenix.User, username: username), password) do
conn
|> put_session(:user_id, user.id)
|> json(UserSerializer.run(user))
else
conn
|> put_status(422)
|> json(%{})
end
end
end
Run Code Online (Sandbox Code Playgroud)
所以,我正在使用这些命令:
MIX_ENV=prod mix compile
MIX_ENV=prod mix phoenix.server
Run Code Online (Sandbox Code Playgroud)
失败和成功认证的响应时间约为~130ms,而此处的rails响应时间约为150ms.我做错了什么?
我有一个名为 Record 的模型,属于 Product 模型,
所述price列类型是十六进制的。Rails 已经将其转换为字符串。但我想在我的控制台查询中获取它们。
pluck 的示例代码:
Product.first.records.pluck(:price)
Run Code Online (Sandbox Code Playgroud)
此查询将数组中的值显示为十六进制。有一种方法to_sentences 需要 pluck 值,但对我来说还不够。
问题在collect方法上是一样的:
Product.first.records.collect(&:price)
Run Code Online (Sandbox Code Playgroud)
将我的十六进制数据显示为字符串数组的 pluck 查询是什么,例如:
["45,46","75,42"]
Run Code Online (Sandbox Code Playgroud)