小编Fre*_*dyK的帖子

红宝石代码:为什么在冒号前面加上冒号(在初始化方法内部)

我遇到了一些Ruby代码,我试图理解为什么变量的名称在initialize方法的声明中以冒号结尾。

结肠有什么原因吗?

attr_reader :var1, :var2

def initialize(var1:, var2:)
   @var1 = var1
   @var2 = var2
end
Run Code Online (Sandbox Code Playgroud)

ruby

5
推荐指数
2
解决办法
633
查看次数

是String.sanitize,是保护rails或sinatra应用程序中的SQL注入的最佳方法

string.sanitize是保护sql注入的最佳方法.

我们需要为它安装Sanitize gem还是有更好的方法?

value = "O'Brian"
value.sanitize =>"O\'Brian"
or 
value.escape =>"O\'Brian"
Run Code Online (Sandbox Code Playgroud)

它可能默认包含在Rails 5中,但是如何使用sinatra.

ruby sql sql-injection ruby-on-rails sinatra

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

如何转换POST body响应以获取元素?

我正在使用HTTPoisonElixir 进行网络请求:

HTTPpoison.post "http://localhost:3000/mymodels"," {\"param1\": \"#{value1}\" ,  \"param2\":\"#{value2}\"} ", [{"Content-Type", "application/json"}] 
Run Code Online (Sandbox Code Playgroud)

这是我得到的回应:

{:ok,
 %HTTPoison.Response{body: "{\"id\":46,\"result\":18,\"param1\":\"liqueur\",\"param2\":\"quif\"}",
  headers: [{"X-Frame-Options", "SAMEORIGIN"},
   {"X-XSS-Protection", "1; mode=block"}, {"X-Content-Type-Options", "nosniff"},
   {"Location", "http://localhost:3000/mymodels/46"},
   {"Content-Type", "application/json; charset=utf-8"},
   {"ETag", "W/\"05b8c75e0a5288c835651f48d4b8a80a\""},
   {"Cache-Control", "max-age=0, private, must-revalidate"},
   {"X-Request-Id", "1e8ae2d3-073a-4779-916a-edffc38f8b5a"},
   {"X-Runtime", "0.530440"}, {"Transfer-Encoding", "chunked"}],
  status_code: 201}}
Run Code Online (Sandbox Code Playgroud)

我是Elixir的新手,我的问题是我想从中得到results元素response.body

iex(3)> response.body           
"{\"id\":46,\"results\":18,\"param1\":\"liqueur\",\"param2\":\"quif\"}"
Run Code Online (Sandbox Code Playgroud)

我不知道如何将此字符串转换为Elixir中的数组/哈希或stuple.我在Enum,但似乎没有用

elixir elixir-poison

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