小编She*_*yar的帖子

如何删除Phoenix会话?

我正在阅读凤凰城会议指南.它很好地解释了我如何使用put_session以后使用和获取值来将数据绑定到会话,get_session但它没有告诉我如何删除用户的会话.

从指南:

defmodule HelloPhoenix.PageController do
  use Phoenix.Controller

  def index(conn, _params) do
    conn = put_session(conn, :message, "new stuff we just set in the session")
    message = get_session(conn, :message)

    text conn, message
  end
end
Run Code Online (Sandbox Code Playgroud)

elixir phoenix-framework

8
推荐指数
2
解决办法
5020
查看次数

在Phoenix中使用带有多个控制器的自定义视图

Phoenix,有什么方法可以指定使用哪个View而不是让Controller命名空间中的变形?

我有多个控制器,每个控制器的视图方法都相同.我想创建一个单独的视图,并与(几乎)我的所有控制器一起使用它.

这可能吗?更重要的是,这是一种不好的做法还是在我的情况下是合理的?

elixir phoenix-framework

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

共享项目转换不在片段背面工作

我正在开发一个带有片段导航模式的Android应用程序(一个活动包含许多碎片).我已经设法按照本指南实施共享项目转换,但它们只能继续工作,而不是回击.

My Fragment(被称为UserFragment)由一个ViewPager带有RecyclerViews的3个片段组成.单击RecyclerViews中的任何项目将打开另一个UserFragment具有相同视图的项目.切换到新片段时,过渡效果非常好,但是在关闭它时我无法使其工作.回击时,片段会淡出,前一个片段会淡入.

TL; DR:

  • 有问题的共享元素是顶部的圆形图像视图
  • transitionName个人资料
  • SharedItemTransition 是一个扩展的自定义类 TransitionSet
  • 我已经在每个recyclerview中给出了每个项目唯一的转换名称,包括他们的用户ID,列表类型和位置索引(如果它们不是唯一的,它也将无法继续)

onBindViewHolder是我的RecyclerView适配器的方法:

public void onBindViewHolder(final UserViewHolder uvh, int position) {
    final LocUser user = users.get(position);
    String transition  = "user_" + user.id() + "_type_" + type + "_item_" + position + "_profile_image";

    uvh.name.setText(user.name());
    uvh.username.setText(user.handle());

    Global.setImage(uvh.userImage, user.profileImage());
    ViewCompat.setTransitionName(uvh.userImage, transitionName(position));

    uvh.root.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            activity.openUserProfile(user, …
Run Code Online (Sandbox Code Playgroud)

android transitions android-fragments

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

从Elixir中的String获取子字符串

在Ruby中,我可以去:

"Sergio"[1..-1] #> "ergio"
Run Code Online (Sandbox Code Playgroud)

在Elixir中执行相同操作会产生运行时错误:

iex(1)> "Sergio"[1..-1]
** (CompileError) iex:1: the Access syntax and calls to Access.get/2 are not available for the value: "Sergio"
Run Code Online (Sandbox Code Playgroud)

还尝试过:

iex(1)> String.slice("Sergio", 1, -1)
** (FunctionClauseError) no function clause matching in String.slice/3
(elixir) lib/string.ex:1471: String.slice("Sergio", 1, -1)
Run Code Online (Sandbox Code Playgroud)

如何从Elixir中的字符串中获取子字符串?

string elixir

8
推荐指数
2
解决办法
8227
查看次数

如何将方法或lambda转换为非lambda proc

如下面的ruby示例所示,我不能lambda使用Proc从a创建的错误数量的参数调用,Method因为它对参数的数量是严格的:

# method with no args
def a; end

instance_eval(&method(:a))
# ArgumentError: wrong number of arguments (1 for 0)

method(:a).to_proc.call(1, 2, 3)
# ArgumentError: wrong number of arguments (3 for 0)

method(:a).to_proc.lambda?
# => true
Run Code Online (Sandbox Code Playgroud)

我如何得到一个Proc不是来自一个Proc或来自一个lambda的lambda Method

ruby lambda proc

7
推荐指数
1
解决办法
2734
查看次数

Rails应用程序在Heroku上崩溃

我的Ruby 2 + Rails 4 + Mongoid 4应用程序在开发上完美运行.但当我推送到Heroku时,应用程序崩溃了.我试过分析Heroku日志,但无法解决问题.我甚至试过禁用我认为可能是原因的宝石,但这没用.

我正在使用的其他一些宝石android_market_api,devises3_direct_upload.请帮忙!

2013-12-06T12:31:34+00:00 heroku[slug-compiler]: Slug compilation finished
2013-12-06T12:31:35.094147+00:00 heroku[web.1]: State changed from crashed to starting
2013-12-06T12:31:40.754686+00:00 heroku[web.1]: Starting process with command `bundle exec unicorn -p 3309 -c ./config/unicorn.rb`
2013-12-06T12:31:46.061981+00:00 app[web.1]: I, [2013-12-06T12:31:46.061146 #2]  INFO -- : Refreshing Gem list
2013-12-06T12:31:50.812324+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/optionable-0.2.0/lib/optionable.rb:32:in `block in validate_strict': :skip_version_check is an unknown option. Valid options are: :write, :read, :database, :max_retries, :pool_size, :retry_interval, :refresh_interval, :down_interval, :ssl, :timeout, :instrumenter. (Optionable::Unknown) …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails heroku mongoid

7
推荐指数
1
解决办法
1203
查看次数

在AndroidAsyncHttp中RequestParams add()和put()之间的区别

在使用android-async-http图书馆时我偶然发现了params.add().

我已经使用params.put()了一段时间,它似乎比add()它允许除String之外的数据类型(如int,long,object,file)更好,而add()不是.

RequestParams params = new RequestParams();

// So how is this
params.add("param_a", "abc");

// different from this
params.put("param_a", "abc");

// and which one should I use?
Run Code Online (Sandbox Code Playgroud)

android android-async-http

7
推荐指数
1
解决办法
4611
查看次数

拆分两个相等的列表(±1)

我知道我可以通过这样做在elixir中将两个相等的一半分成一个偶数列表:

list   = [1, 2, 3, 4, 5, 6]
len    = length(list)/2 |> round

[a, b] = Enum.chunk(list, len)            # => [[1, 2, 3], [4, 5, 6]]
Run Code Online (Sandbox Code Playgroud)

但是内置了ruby-esque方法还是有一些更有效的方法来处理奇数长度列表?

elixir

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

如何在简单的elixir脚本中加载elixir库?

在ruby脚本中,我可以简单地做:

require 'some-gem'

SomeGem.do_something!
Run Code Online (Sandbox Code Playgroud)

如何在exs不创建全新混合项目的情况下在elixir 脚本中执行类似的操作?到目前为止,我已经搜索了谷歌如何做到这一点,并阅读了一些博客文章(如此),但无法找到一个正确的(阅读'简单')方式来做到这一点.

具体来说,我想HTTPoison在我的elixir脚本中使用.

elixir

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

将Phoenix请求路径与数据库中定义的Route匹配

当我们发送请求时,我们在conn结构中有当前路径信息.让我们说补丁请求.

["v1", "users", "2"] or "v1/users/2"
Run Code Online (Sandbox Code Playgroud)

我正在根据db中的路径信息为用户授权编写插件.在db中,路径存储如下:

"v1/users/:id"
Run Code Online (Sandbox Code Playgroud)

这是我们从跑步中获得的路径mix phx.routes.我有可能得到"v1/users/:id"而不是"v1/users/2"当前的路径吗?所以我可以将它与db中存储的路径相匹配.

有什么工作吗?

elixir phoenix-framework

7
推荐指数
1
解决办法
189
查看次数