小编She*_*yar的帖子

使用Class本身作为方法

今天我Pathname在Ruby中遇到了这个类,并注意到你可以直接将类本身称为一个方法(它基本上会返回一个新实例):

Pathname("some/path")
# => #<Pathname:some/path>
Run Code Online (Sandbox Code Playgroud)

我一直试图用我的同样的东西复制CustomClass但是没有成功.我不知道这些方法被调用了什么,我找不到任何可以让我了解如何执行此操作的Ruby代码.我的问题是如何使用类名作为方法?

到目前为止我尝试过的事情:

  • 定义 self.self()
  • 定义 self.class()
  • 使用class << self语法
  • 谷歌搜索 - 但它只返回类方法与实例方法的比较

ruby

0
推荐指数
1
解决办法
77
查看次数

Enum.map中的Enum.sum返回字母而不是整数

我试图获得17位数的列表数字,然后将其拆分Integer.digits,并得到这些数字的总和.不幸的是我一直在意外行为(我的结果包含一串字母)并且不确定这是一个错误还是个人错误.

下面是iex错误的控制台,结果给出'Q $':

iex(4)> numbers = [
...(4)>   [1, 4, 8, 1, 3, 6, 9, 4, 2, 5, 5, 6, 3, 1, 8, 8, 7],
...(4)>   [1,5, 9, 4, 1, 3, 2, 7],
...(4)>   [1, 5, 4, 6, 5, 7, 8]
...(4)> ]
iex(5)> Enum.map(numbers, fn x -> Enum.sum(x) end)            
'Q $'
Run Code Online (Sandbox Code Playgroud)

但是当我从最后一个列表中删除一个数字时,它再次正常工作,并给出预期的结果

iex(1)> numbers = [ 
...(1)>   [1, 4, 8, 1, 3, 6, 9, 4, 2, 5, 5, 6, 3, 1, 8, 8, …
Run Code Online (Sandbox Code Playgroud)

elixir

0
推荐指数
1
解决办法
209
查看次数

在 Phoenix 路由器中使用不带 :id 的资源宏

默认情况下,宏会在路由末尾resources附加一个,用于对单个资源执行操作。/:id

但是,我遇到的情况是,用户必须始终登录才能对自己执行操作。我更喜欢:current_user从获取conn.assigns,而不是通过传入/显示 URL 中的任何参数。我知道我总能把路线一一写出来。我只是想知道是否有办法让resources生成这样的路径。

elixir phoenix-framework

0
推荐指数
1
解决办法
625
查看次数

在Phoenix中使用自定义SQL代码生成迁移

我想Ecto使用自定义SQL代码生成新的迁移,而不是使用提供的帮助程序.当前的mix生成器任务仅处理模型.

如何在迁移中编写原始SQL代码?

sql elixir ecto phoenix-framework

-1
推荐指数
1
解决办法
421
查看次数

标签 统计

elixir ×3

phoenix-framework ×2

ecto ×1

ruby ×1

sql ×1