小编Seb*_*ian的帖子

榆树:如何解码来自JSON API的数据

我使用http://jsonapi.org/格式获取此数据:

{
    "data": [
        {
            "type": "prospect",
            "id": "1",
            "attributes": {
                "provider_user_id": "1",
                "provider": "facebook",
                "name": "Julia",
                "invitation_id": 25
            }
        },
        {
            "type": "prospect",
            "id": "2",
            "attributes": {
                "provider_user_id": "2",
                "provider": "facebook",
                "name": "Sam",
                "invitation_id": 23
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我有我的模特:

type alias Model = {
  id: Int,
  invitation: Int,
  name: String,
  provider: String,
  provider_user_id: Int
 }

 type alias Collection = List Model
Run Code Online (Sandbox Code Playgroud)

我想将json解码为Collection,但不知道如何.

fetchAll: Effects Actions.Action
fetchAll =
  Http.get decoder (Http.url prospectsUrl [])
   |> Task.toResult
   |> Task.map …
Run Code Online (Sandbox Code Playgroud)

json elm

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

如何重新加载ruby类

在我们的许多类中,我们缓存了昂贵的性能操作.例如

def self.foo
    @foo ||= get_foo
end 
Run Code Online (Sandbox Code Playgroud)

这在应用程序中很有用,但是由于这些记忆变量,测试(RSpec)失败了.当我们期望新值时,第一次测试的值将在后续测试中返回.

所以问题是:我如何重新加载课程?或者删除所有已记忆的变量?

ruby rspec

7
推荐指数
2
解决办法
3183
查看次数

如何跳过特定页面的插件

我正在使用身份验证构建Phoenix应用程序.在我的路由器中我有类似的东西:

pipeline :browser do
    plug :accepts, ["html"]
    plug MyApp.Plugs.Authenticate
end

scope "/", MyApp do
    pipe_through :browser # Use the default browser stack

    get "/", HomeController, :show
    get "/login", SessionsController, :login
    get "/matches", MatchesController, :index
end
Run Code Online (Sandbox Code Playgroud)

我想跳过Authenticate插件/ login,我可以在路由器中执行此操作,还是必须在插件本身中执行此操作?

Plugs.Authenticate看起来像:

def call(conn, _) do
    case Authenticator.find_user(conn) do
        {:ok, user} ->
            assign(conn, :user, user)
        :error ->
            conn
                |> redirect(to: "/login")
                |> halt
    end
end
Run Code Online (Sandbox Code Playgroud)

elixir phoenix-framework

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

如何在 Nim 中将字符串转换为字符序列?

我想对字符串中的字符执行不同的操作,例如 map 或 reverse。作为第一步,我想将字符串转换为序列。

给定一个像“ab”这样的字符串。我如何得到一个序列@['a','b']

"ab".split("") 返回整个字符串。

我之前看过一个例子"ab".items,但这似乎不起作用(是否已弃用?)

nim-lang

6
推荐指数
2
解决办法
1904
查看次数

如何在终端上运行Mac上的fsharp测试?

我想学习fsharp.所以我在看exercism.io

在他们的自述文件中,他们指示使用Xamarin Studio进行测试 http://exercism.io/languages/fsharp/tests

但我想从终端运行测试.来自练习的练习只包括一个F#文件,例如HelloWorldTest.fs.

回答使用mono/nunit-console/4在Mac OS X控制台上运行测试指示nunit-console使用.csproj.dll文件运行.但这些文件不存在于练习文件中.所以我不清楚该怎么做.

我用自制软件安装了mono.如何在OSX中从终端运行NUnit测试?

macos mono f# nunit

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

Nightwatch.js:窗口未定义

我正在尝试使用Nightwatch来测试React应用程序.我正在使用React-Router.

使用Nightwatch运行我的测试时window未定义.

React使用以下代码片段来测试DOM是否可用:

var canUseDOM = !!(
  typeof window !== 'undefined' &&
  window.document &&
  window.document.createElement
);
Run Code Online (Sandbox Code Playgroud)

来自React.js源:ExecutionEnvironment.js#L16

React-Router期望canUseDOM为true,否则会引发错误.

所以我的测试失败了因为window在运行Nightwatch时未定义.

window应该与硒webdriver一起出现?我该如何window提供?

javascript selenium reactjs nightwatch.js

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

水晶相当于代数数据类型

在Crystal中编写等效代数数据类型的惯用方法是什么?例如在Haskell我可能有

data Stage = StageInitial String | StageFinished String
Run Code Online (Sandbox Code Playgroud)

所以我希望有两个阶段,每个阶段都有一个字符串有效负载.后来我想在舞台上进行模式匹配.

你怎么用水晶写这个?

crystal-lang

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

Rails:需要帮助定义地址表的关联

我发现这有点弯曲,想要一些想法.我的设计喜欢这个:

  • 有构建者表,每个构建者都可以有一个邮政地址
  • 有一个客户表,每个客户可以有一个邮政地址和账单地址
  • 有一个地址表

我需要定义构建器地址和客户端地址之间的关联

我最初的数据库设计是这样的:

Builders
--------------------
id
postal_address_id
...

Clients
--------------------
id
postal_address_id
billing_address_id
...

Addresses
-------------------
id
...
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎合乎逻辑,但我在rails关联中翻译它时遇到了麻烦.

我在想地址可以定义belongs_to:可寻址的多态关联.但是如何处理客户的邮政和账单地址.

任何帮助都感激不尽.

activerecord ruby-on-rails

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