我需要向我的Rails应用添加实时通知.以下是我发现的不同架构.
问题:
我是开源贡献的新手,所以这是我的第一次尝试.
我开发了一个名为validates:https : //github.com/kaize/validates/的库(gem)
我做了两个分支git checkout -b branch_name:
https://github.com/kaize/validates/pull/20&https://github.com/kaize/validates/pull/19,并为它们提交,但是,你可以看到ip-validator pull请求有提交Blank validator 399cdd7.
我需要做什么才能从拉取请求中删除它(并且仍然放在空白验证器分支中)?
伙计们,请帮助我让世界更美好!
假设我有一个清单 [1, 2, 3, 4]
除了最后一个,如何从此列表中获取所有元素?所以,我会的[1, 2, 3]
我想让我的一些jest测试待定.我该怎么做?API参考没有任何方法我如何使我的测试挂起.
假设我想创建一个resources向它添加几个自定义动作,rails中的模拟是:
resources :tasks do
member do
get :implement
end
end
Run Code Online (Sandbox Code Playgroud)
这不仅会给我带来7条标准路线,还会带来1条新路线:
GET /tasks/:id/implement
Run Code Online (Sandbox Code Playgroud)
我怎么能在凤凰城做到这一点?
假设我有一个结构,struct = %MyApp.MyModel{ filled_with_data: "true }.
我如何获得结构名称(MyApp.MyModel在我的情况下)?
我有一个身份验证插件,我想测试我的控制器.问题是这个插头中的线路有
user_id = get_session(conn, :user_id)
Run Code Online (Sandbox Code Playgroud)
当我使用这种方法时,它总是零(我以前使用过脏黑客,但我不想再这样做了):
@session Plug.Session.init([
store: :cookie,
key: "_app",
encryption_salt: "secret",
signing_salt: "secret",
encrypt: false
])
user = MyApp.Factory.create(:user)
conn()
|> put_req_header("accept", "application/vnd.api+json")
|> put_req_header("content-type", "application/vnd.api+json")
|> Map.put(:secret_key_base, String.duplicate("abcdefgh", 8))
|> Plug.Session.call(@session)
|> fetch_session
|> put_session(:user_id, user.id)
Run Code Online (Sandbox Code Playgroud)
我正在使用此conn发送补丁请求,其会话user_id为nil.IO.puts conn在我的插件中的结果:
%Plug.Conn{adapter: {Plug.Adapters.Test.Conn, :...}, assigns: %{},
before_send: [#Function<0.111117999/1 in Plug.Session.before_send/2>,
#Function<0.110103833/1 in JaSerializer.ContentTypeNegotiation.set_content_type/2>,
#Function<1.55011211/1 in Plug.Logger.call/2>,
#Function<0.111117999/1 in Plug.Session.before_send/2>], body_params: %{},
cookies: %{}, halted: false, host: "www.example.com", method: "PATCH",
owner: #PID<0.349.0>,
params: %{"data" => %{"attributes" => %{"action" …Run Code Online (Sandbox Code Playgroud) 我有一个长时间消耗迁移的问题,我希望在并行运行(它可以在并行运行).实际上,迁移是关于获取数据库中的所有记录,并对每个记录执行耗费时间和资源的操作.
有时单个记录迁移挂出,所以我给10分钟完成.如果迁移没有完成,我希望它正常关闭,没有任何例外(见下文)
我也使用poolboy erlang包来并行化实现,因为迁移不仅消耗时间,而且消耗资源.问题是我不知道如何在发生超时并且代码将要中断时处理错误.我的监督树是:
defmodule MyReelty.Repo.Migrations.MoveVideosFromVimeoToB2 do
use Ecto.Migration
alias MyReelty.Repo
alias MyReelty.Repo.Migrations.MoveVideosFromVimeoToB2.Migrator
# parallel nature of migration force us to disable transaction
@disable_ddl_transaction true
@migrator_waiting_time 10 * 60 * 1000 # timeout
@poolboy_waiting_time @migrator_waiting_time + 10 * 1000 # give a time for graceful shutdown
@pool_name :migrator
@pool_size 3
@pool_config [
{ :name, { :local, @pool_name }},
{ :worker_module, Migrator },
{ :size, @pool_size },
{ :max_overflow, 0 },
{ :strategy, :fifo }
]
def up do
children …Run Code Online (Sandbox Code Playgroud) 随着Map.merge我有:
Map.merge(%{ a: %{ b: 1 }}, %{ a: %{ c: 3 }}) # => %{ a: %{ c: 3 }}
Run Code Online (Sandbox Code Playgroud)
但实际上我想:
Map.merge(%{ a: %{ b: 1 }}, %{ a: %{ c: 3 }}) # => %{ a: %{ b: 1, c: 3 }}
Run Code Online (Sandbox Code Playgroud)
有没有为这种情况编写递归样板函数的本机方法?
elixir ×6
actioncable ×1
actor ×1
enums ×1
erlang ×1
ex-unit ×1
gen-server ×1
git ×1
git-rebase ×1
javascript ×1
jestjs ×1
migration ×1
ruby ×1
sockets ×1
testing ×1
websocket ×1