小编Mar*_*ota的帖子

Rails秘密令牌

我很困惑在Rails中使用的secret_token是什么.任何人都可以解释它的用途吗?将此令牌放在公共源存储库中并在生产中使用它是否可以,或者我应该在部署应用程序之前更改它以防止某些类型的攻击?

security ruby-on-rails

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

hGetContents太懒了

我有以下代码片段,我传递给withFile:

text <- hGetContents hand 
let code = parseCode text
return code
Run Code Online (Sandbox Code Playgroud)

这里hand是一个有效的文件句柄,打开ReadMode并且parseCode是我自己的函数,它读取输入并返回一个Maybe.实际上,函数失败并返回Nothing.如果,而是我写:

text <- hGetContents hand 
putStrLn text
let code = parseCode text
return code
Run Code Online (Sandbox Code Playgroud)

我得到了一个Just,就像我应该的那样.

如果我openFilehClose我自己,我有同样的问题.为什么会这样?我怎样才能干净利落地解决它?

谢谢

file-io haskell

13
推荐指数
2
解决办法
2062
查看次数

操纵monad堆栈

如果我有单子一堆,说IO,StateError,而仅使用功能IOError.如何State从堆栈中"移除"中间monad以便我可以使用我的功能?如果订单IO,Error,State,我可以用lift匹配的类型,但我希望能够用我的功能,如果单子堆栈包含IOError在任何顺序其他可能的单子.例如:

fun :: ErrorT String IO ()
fun = throwError "error"

someCode :: ErrorT String (StateT Int IO) ()
someCode = do
    -- I want to use fun here
Run Code Online (Sandbox Code Playgroud)

monads haskell monad-transformers

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

列出Linux中的所有USB驱动器

如何在Linux中获取可移动驱动器列表(插入USB)?我可以使用KDE,GNOME或其他DE库,如果它可以使事情变得更容易.

python linux usb removable-drive

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

JavaScript事件处理程序执行顺序

有这个JS代码:

document.getElementById('e1').addEventListener('click', function(){alert('1');}, false);
document.getElementById('e2').addEventListener('click', function(){alert('2');}, false);
document.getElementById('e1').click();
document.getElementById('e2').click();
Run Code Online (Sandbox Code Playgroud)

我想知道警报会以什么顺序显示 - 它是按事件触发的顺序click()还是随机的?

我问的是有关记录/标准化的行为,而不是关于当前实现的浏览器.

javascript events standards javascript-events

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

OmniAuth&openid:从openid提供程序获取某些字段

我正在使用rails gem:OmniAuth登录用户.

当使用OpenId提供程序时,我想获得某些字段,如电子邮件和昵称,但我没有看到任何关于此的文档.

有任何想法吗?

谢谢

openid ruby-on-rails omniauth

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

在gVim中使用Vim警告样式

例如,在Vim之外更改已编辑的文件时,Vim会发出警告并提示重新加载文件.在命令行Vim中,底部出现绿色文本,但在gVim中有一个GTK +弹出窗口.我更喜欢Vim的行为,我也想在gVim中使用它,我怎么能改变它?

gtk vim

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

Rails schema.rb对于不同的数据库是不同的

我在Rails中的schema.rb有问题.如果我运行rake db:migrate结果对于不同的数据库是不同的,确切地说,如果我使用PostgreSQL和文本字段它给我

t.text     "summary"
Run Code Online (Sandbox Code Playgroud)

但是用SQLite它给了我

t.text     "summary",    :limit => 255
Run Code Online (Sandbox Code Playgroud)

当我使用时:default,空格数也不同,PostgreSQL:

t.boolean  "watched",    :default => false, :null => false
Run Code Online (Sandbox Code Playgroud)

SQLite的:

t.boolean  "watched",                   :default => false, :null => false
Run Code Online (Sandbox Code Playgroud)

令人讨厌的是,当我rake db:migrate在生产中运行时,它会更改我的schema.rb,显然我rake db:schema:load在使用开发环境中生成的schema.rb时无法使用生产.我的问题是为什么存在差异以及如何使它们消失,因此schema.rb与生产和开发相同?

database sqlite postgresql activerecord ruby-on-rails

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

使自定义monad转换器成为MonadError的实例

我想让我的monad变换器成为MonadError转换后的monad是一个实例的实例.基本上我希望我的变压器能像内置变换器一样工作,例如有一个MonadError实例StateT:

MonadError e m => MonadError e (StateT s m)
Run Code Online (Sandbox Code Playgroud)

我试过这样做:

instance MonadError e m => MonadError e (MyMonadT m)
Run Code Online (Sandbox Code Playgroud)

但是GHC开始抱怨不可判断的实例,显然MTL库只是启用了不可判定的实例,但是有什么方法可以避免这种情况吗?或者在这种情况下可以,它不会导致任何问题?

haskell monad-transformers

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

Haskell中的函数类型特化

我有一个具有类型的函数Read a => String -> a,是有可能有难同当,做不同的事情同名的另一个功能a是例如String?是否有任何GHC扩展允许这样做?

就像是:

f :: Read a => String -> a
f = read

f :: String -> String
f = id
Run Code Online (Sandbox Code Playgroud)

haskell types generic-programming ghc

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