作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
刚到 Elixir/Phoenix 我想使用 RethinkDB 而不是 PostgreSQL,但我只在 PostgreSQL 上找到文档/示例(这似乎是默认/官方数据库)。 Hamiltop (Rethinkdb-elixir) 提供了一个非常好的软件包,但不幸的是 Wiki 中的文档还没有准备好,而自述文件中的文档对我来说还不够。
我绝对不想使用 SQL(我来自使用 Meteor/MongoDB,其中数据库不是问题)。
谁能给我看一个我需要的代码的简单示例:
最佳答案
步骤 1) 生成没有 ecto 的项目:
mix phoenix.new some_app --no-ecto
mix.exs
中添加 rethinkdb 作为依赖项
defp deps do
[{:phoenix, "~> 0.13.1"},
{:phoenix_html, "~> 1.0"},
{:phoenix_live_reload, "~> 0.4", only: :dev},
{:rethinkdb, "~> 0.0.5"},
{:cowboy, "~> 1.0"}]
end
mix deps.get
defmodule SomeApp.Database do
use RethinkDB.Connection
end
lib/some_app.ex
中的监督树中-
name
应该与上面的数据库模块匹配(
SomeApp.Database
)
def start(_type, _args) do
import Supervisor.Spec, warn: false
children = [
# Start the endpoint when the application starts
supervisor(SomeApp.Endpoint, []),
worker(RethinkDB.Connection, [[name: SomeApp.Database, host: 'localhost', port: 28015]])
# Here you could define other workers and supervisors as children
]
# See http://elixir-lang.org/docs/stable/elixir/Supervisor.html
# for other strategies and supported options
opts = [strategy: :one_for_one, name: Rethink.Supervisor]
Supervisor.start_link(children, opts)
end
defmodule Rethink.PageController do
use Rethink.Web, :controller
use RethinkDB.Query
plug :action
def index(conn, _params) do
table_create("people")
|> SomeApp.Database.run
|> IO.inspect
table("people")
|> insert(%{first_name: "John", last_name: "Smith"})
|> SomeApp.Database.run
|> IO.inspect
table("people")
|> SomeApp.Database.run
|> IO.inspect
render conn, "index.html"
end
end
priv/migrations/create_people.exs
并使用
mix run priv/migrations/create_people.exs
运行它
关于elixir - 如何将 RethinkDB 与 Phoenixframework 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31457945/
刚到 Elixir/Phoenix 我想使用 RethinkDB 而不是 PostgreSQL,但我只在 PostgreSQL 上找到文档/示例(这似乎是默认/官方数据库)。 Hamiltop (
我在 Controller 中尝试了以下内容: conn |> put_flash(:info, "text with twitter" |> render "index.html" 我正在显示这样的
我尝试将phoenix绑定(bind)到"0.0.0.0"我试过 config.exs作为: config :app, App.Endpoint, url: [host: "0.0.0.0"],
我是一名优秀的程序员,十分优秀!