小编Top*_*unt的帖子

如何更改Stripe的API版本以进行测试等

我们正在管理一个使用Stripe的旧Rails应用程序,但我们的Stripe版本比当前API落后26个月.我们希望升级到当前的Stripe API,但由于许多更改会影响我们的系统,因此我们真的想要在更改我们的实时网站使用的实时API之前测试更改.

所以我有两个问题:

1)使用API​​时,我们非常依赖实时和测试模式之间的区别.有没有办法只升级测试模式API(不升级Live),这样我们可以识别并纠正任何破坏而不会实际破坏用户体验?

2)是否可以一次升级API一个版本,而不是一次升级,以使转换对我们来说更易于管理?

ruby-on-rails stripe-payments

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

由于"404 Not Found"错误,sunspot_rails无法索引

我正在尝试在一个小的Rails应用程序中安装Sunspot,完全遵循gem设置说明,但每当RSolr::Error::Http: RSolr::Error::Http - 404 Not Found我尝试索引数据时遇到错误.我可以用一个新的应用程序重现这个; 以下是我遵循的确切步骤:

创建一个新的Rails 4.2.5应用程序:

$ rails new test_sunspot
$ cd test_sunspot/
$ spring stop # spring can cause `generate` commands to hang
$ rails g model Thing title:string
$ rake db:migrate
$ rails c
  > Thing.create!(title: "Cats")
  > Thing.create!(title: "Pizza")
  > exit
Run Code Online (Sandbox Code Playgroud)

向模型添加太阳黑子索引:

class Thing < ActiveRecord::Base
  searchable do
    text :title
  end
end
Run Code Online (Sandbox Code Playgroud)

将Sunspot添加到Gemfile:

...
gem 'sunspot_rails', '2.2.2'
gem 'sunspot_solr',  '2.2.2'  
...
Run Code Online (Sandbox Code Playgroud)

安装,启动和重新编制太阳黑子:

$ bundle install
$ rails g sunspot_rails:install # …
Run Code Online (Sandbox Code Playgroud)

solr ruby-on-rails sunspot-rails

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

Mac OSX:Ruby gem 编译错误:“您必须先安装开发工具”

在 Ruby 2.3.0 上运行bundle installRails 项目时,我不断遇到包含行You have to install development tools first. 谷歌搜索后,最直接的解决方案是运行xcode-select --install,但我已经安装了 Xcode(运行该命令确认了这一点)并且我之前已经编译过这些 gem 的早期版本(在早期的 Ruby 版本上),没有出现任何问题。

还有什么可能导致此编译错误?

ruby macos rubygems

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

Elixir pry会话因数据库连接超时而中断

我很乐意听取有关如何在Phoenix控制器测试中运行调试器的建议:

  • require IEx 在目标文件中
  • 添加IEx.pry到所需的行
  • 在IEx中运行测试: iex -S mix test --trace

但几秒钟后,这个错误总是出现:

16:51:08.108 [error] Postgrex.Protocol (#PID<0.250.0>) disconnected: 
** (DBConnection.ConnectionError) owner #PID<0.384.0> timed out because 
it owned the connection for longer than 15000ms
Run Code Online (Sandbox Code Playgroud)

正如消息所示,此时数据库连接似乎超时,并且任何调用数据库连接的命令都会出错DBConnection.OwnershipError.如何告诉我的数据库连接不要超时,以便我可以安静地调试我的测试?

testing debugging elixir ecto phoenix-framework

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

Elixir/Phoenix:如何实现会话超时/到期

我正在研究一个香草Elixir/Phoenix应用程序,并按照Programming Phoenix书中的一般步骤实现基本的登录和注销系统(参见下面的代码片段).但是我在书中或网上看不到有关如何设置基于cookie的插件会话在一定时间后过期的建议.Phoenix应用程序中的会话超时有哪些方法?

这是我的骨干auth系统的一些相关片段:

endpoint.ex,应用程序配置为使用只读的基于cookie的会话:

plug Plug.Session,
  store: :cookie,
  key: "_zb_key",
  signing_salt: "RANDOM HEX"
Run Code Online (Sandbox Code Playgroud)

我写了一个插件auth.ex(其中包括)可以登录经过身份验证的用户,并可以current_user根据user_id后续请求中找到的会话进行设置:

def login!(conn, user) do
  conn
    |> assign(:current_user, user)
    |> put_session(:user_id, user.id)
    |> configure_session(renew: true)
end

# ... more ...

def load_current_user(conn, _opts) do
  cond do
    conn.assigns[:current_user] ->
      conn # If :current_user was already set, honor it
    user_id = get_session(conn, :user_id) ->
      user = Zb.Repo.get!(Zb.User, user_id)
      assign(conn, :current_user, user)
    true ->
      conn # No user_id was found; …
Run Code Online (Sandbox Code Playgroud)

elixir phoenix-framework plug

6
推荐指数
3
解决办法
2714
查看次数

Sublime Text 2:软包装线 - >反向压痕?

我已经开始使用Sublime Text 2及其插件社区,作为我的Dreamweaver替代品(感谢众神).我喜欢Sublime并且显然不会在未来几个月或几年内实现它的许多功能,但是有一个简单的设置我很难搞清楚.

我过去曾经使用过BBedit.我非常喜欢的一个功能是在软包装时能够"反转"缩进行,这样换行看起来像这样:

Text text blah blah blah blah long enough to wrap
  to a new line blah whenever soft wrap happens it
  reverse-indents like this.
Here's a new line with no indent.
Run Code Online (Sandbox Code Playgroud)

也许我不应该与一个看似微不足道的特征结婚,但我发现当不可能将一行的开头与长行的"尾矿"混淆时,更容易阅读代码.有谁知道如何在Sublime中做到这一点?

sublimetext2

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

Elixir / Phoenix:如何自定义 HTTP 请求日志格式?

默认情况下,我的 Phoenix 应用程序会在大约 5 行日志输出中记录有关每个 HTTP 请求的基本信息。只要我将日志级别设置为:debug,我就可以看到每个请求的方法、路径、控制器和操作、参数、响应代码和持续时间:

2019-06-14 16:05:35.099 [info] GET /manage/projects/7qDjSk
2019-06-14 16:05:35.103 [debug] Processing with RTLWeb.Manage.ProjectController.show/2
  Parameters: %{"project_uuid" => "7qDjSk"}
  Pipelines: [:browser, :require_login]
2019-06-14 16:05:35.116 [info] Sent 200 in 17ms
Run Code Online (Sandbox Code Playgroud)

这是一个很好的起点。但我想自定义应用程序以在一行上记录所有这些信息,这很有帮助,例如。在Papertrail 等工具中筛选大量日志输出时。特别是我希望每个请求都以这样的格式显示:

[PUT /manage/projects/74/prompts/290] params=%{"project_uuid" => "74", "prompt" => %{"html" => "<div>Test question 3</div>"}, "prompt_uuid" => "290"} user=38 (Topher Hunt) status=302 redirected_to=/manage/projects/74 duration=423ms

Run Code Online (Sandbox Code Playgroud)

Phoenix.Controller 文档中,我看到我可以为 Phoenix 控制器日志配置日志级别,或者完全禁用它,但我没有看到自定义格式的方法。我怎样才能做到这一点?

logging elixir phoenix-framework

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

Elixir / Phoenix:为什么路由助手需要@conn?

在编写Phoenix应用程序时,我已经习惯于使用如下语法编写链接:link "My profile", to: Routes.user_url(@conn, :show, user)。最近,当使用LiveView时,我意识到您可以通过此处MyAppWeb.Endpoint而不是@conn此处,并且它将保持相同的状态。因为(我想)大多数Phoenix应用程序只有一个Endpoint模块,所以我有点希望它可以推断出我的默认Endpoint,这样我就不必在每次调用路径/ URL助手时都提供conn / endpoint。这让我想知道为什么Phoenix将这些助手设计为始终需要端点,而不是使用某些已配置的默认端点。

有谁知道为什么路由助手被设计为始终需要conn /端点,并且不允许您配置默认端点?这仅仅是“还没有解决”的问题,还是有一些重要的原因为什么每次都不明确要求conn / endpoint 会带来问题?

elixir phoenix-framework

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

Sublime Text:在带有PHP片段的HTML链接中,&符号突出显示为红色?

我正在编写我理解为非常标准的PHP/HTML代码.在PHP中模仿一个粗略的RESTful架构,受Rails的启发.我的页面包含许多动态生成的链接,结构如下:

<a href='objects_list.php?coursekey=<? echo $coursekey; ?>&delete_section=<? 
  echo $row['key']; ?>'>delete</a>
Run Code Online (Sandbox Code Playgroud)

如您所见,该链接有两个URL变量,每个变量都是根据页面知道的PHP变量设置的.很常见,对吗?

我最近转向Sublime Text 2作为我的主要开发环境.我认为这太棒了,我的开发过程得到了很大改善.但Sublime的语法突出显示似乎被在任何链接中分隔URL变量的&符号(&)弄糊涂了.它用红色突出显示每个&符号,好像我认为我犯了一个错误.

知道为什么吗?有什么方法可以让Sublime认识到链接通常需要在其中加上&符号?

编辑:无论PHP片段是否包含在链接href中,都会发生这种情况.Sublime似乎在链接中不信任&符号......?

html php sublimetext2

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

Elixir / Phoenix:为什么某些文件/行未显示在我的异常堆栈跟踪中?

每天有几次在我的Phoenix应用程序中浏览错误的堆栈跟踪时,我注意到某些绝对在执行的文件没有显示在堆栈跟踪中。

示例1:省略视图帮助器方法

这是一个涉及format_date从我的模板调用的助手的示例。代码:

# The template, `...web/templates/home/index.html.eex`:
<h1>My Super Old Company</h1>
<p>We've been operating since <%= format_date(Timex.now()) %>!!</p>

# The `format_date` helper lives in the corresponding View module:
def format_date(date) do
  template = "%b %d, %Y"
  method = :strftime
  # Whoops, it looks like I passed a bad value to Timex here
  Timex.format!(nil, template, method)
end
Run Code Online (Sandbox Code Playgroud)

尝试呈现此页面会产生异常:

Request: GET /
** (exit) an exception was raised:
    ** (ArgumentError) invalid_date
        (timex) lib/format/datetime/formatter.ex:60: Timex.Format.DateTime.Formatter.lformat!/4
        (rtl) lib/rtl_web/templates/home/index.html.eex:3: RTLWeb.HomeView."index.html"/1
        (rtl) lib/rtl_web/templates/layout/app.html.eex:27: RTLWeb.LayoutView."app.html"/1 …
Run Code Online (Sandbox Code Playgroud)

stack-trace elixir

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