我正在使用Phoenix框架开发多语言应用程序
到目前为止,路由器看起来像这样:
scope "/:locale", App do
pipe_through [:browser, :browser_session]
get "/", PageController, :index
get "/otherpage", OtherpageController, :index
end
scope "/", App do
end
Run Code Online (Sandbox Code Playgroud)
我在文档中使用了插件:http : //www.phoenixframework.org/docs/understanding-plug#section-module-plugs
为了使“语言环境”在应用程序中持久存在,我在Phoenix.Controller模块中使用了自定义操作来执行此操作:
def action(conn, _) do
apply(__MODULE__, action_name(conn), [conn,
conn.params,
conn.assigns.locale])
end
Run Code Online (Sandbox Code Playgroud)
因此,现在每次生成控制器时,都应该添加上述自定义操作,并更改新控制器中的每个操作以注入区域设置
def index(conn, _params, locale) do
list = Repo.all(List)
render conn, "index.html", list: list
end
Run Code Online (Sandbox Code Playgroud)
我正在努力解决两件事:
1-这是正确的方法吗?还是我在弄东西?
2-以及如何使范围“ / ”使用默认值重定向到范围“ /:locale”,例如:“ en”?
编辑
我喜欢使用以下网址:“ example.com/en”
凯恩
我正在使用Opensuse Tumbleweed,我正试图在没有运气的情况下运行genymotion.
$ ./genymotion
Run Code Online (Sandbox Code Playgroud)
然后我收到这个错误:
/genymotion: symbol lookup error: /usr/lib64/libX11.so.6: undefined symbol: xcb_wait_for_reply64
Run Code Online (Sandbox Code Playgroud) 我想显示一系列日期(统计数据),如:
Dates | Count
--------------------
"2016-09-01" | 0
"2016-09-02" | 0
"2016-09-03" | 0
"2016-09-04" | 0
"2016-09-05" | 0
"2016-09-06" | 12
"2016-09-07" | 9
"2016-09-08" | 0
"2016-09-09" | 90
Run Code Online (Sandbox Code Playgroud)
原始SQL查询:
select date(d) as day, count(clicks.id)
from generate_series(
current_date - interval '13 day',
current_date,
'1 day'
) d
left join clicks on date(clicks.inserted_at) = d and clicks.link_id = 15
group by day order by day;
Run Code Online (Sandbox Code Playgroud)
我很乐意在没有Raw SQL的情况下将它与Ecto一起使用
我发现最接近的是:
query = from c in Like
where: c.link_id == ^link.id …Run Code Online (Sandbox Code Playgroud) 我复制了这段代码,以便任何人都可以尝试一下http://elm-lang.org/try
import Html exposing (..)
import Html.App as App
import Html.Attributes exposing (..)
import Html.Events exposing (..)
main =
App.program
{ init = init
, view = view
, update = update
, subscriptions = \_ -> Sub.none
}
init =
( { posts = [], newPost = { title = "", slug = "" } }, Cmd.none )
type alias Post =
{ title : String
, slug : String
}
type alias Model =
{ posts : …Run Code Online (Sandbox Code Playgroud)