gpt4 book ai didi

ruby - 帕德里诺教程 : Can't Modify Frozen String (Runtime Error)

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:06 24 4
gpt4 key购买 nike

我正在关注这里的 Padrino 教程:

https://www.padrinorb.com/guides/blog-tutorial

我正在复制和粘贴命令,但我很快遇到了一个我不明白的错误:

$ padrino g controller posts get:index get:show
create app/controllers/posts.rb
create app/views/posts
apply tests/shoulda
/Users/waprin/.rvm/gems/ruby-2.1.0/gems/padrino-gen-0.12.4/lib/padrino-gen/generators/controller.rb:66:in `prepend': can't modify frozen String (RuntimeError)
from /Users/waprin/.rvm/gems/ruby-2.1.0/gems/padrino-gen-0.12.4/lib/padrino-gen/generators/controller.rb:66:in `create_controller'

最佳答案

这可能有点晚了,但以防万一其他人遇到此错误(并且因为我刚刚完成了相同的教程)无论如何我都会发布...

如果指定了测试组件,生成 Controller 时似乎会出现问题。在这种情况下,您使用的是 shoulda,但在使用 rspec 和其他可能时也会发生同样的情况。它被报告为错误:https://github.com/padrino/padrino-framework/issues/1850并且已经修复,但还不是稳定版本的一部分。

解决此问题的一个方法是更改​​您的 Gemfile 以使用其 github 存储库中的最新版本。为此,请删除您的 GemFile.lock 文件,并在您的 GemFile 中注释掉“Padrino Stable Gem”下的行:

gem 'padrino', '0.12.4'

然后取消注释“Or Padrino Edge”下的行:

gem 'padrino', :github => 'padrino/padrino-framework'

然后重新运行 bundle install。

当然,您将不再运行稳定版本,这可能会带来其他权衡。

作为旁注,我认为该页面上的指南已经过时了。我还需要更换:

  get :index do
@posts = Post.all(:order => 'created_at desc')
render 'posts/index'
end

与:

  get :index, :provides => [:html, :rss, :atom] do
@posts = Post.order('created_at desc')
render 'posts/index'
end

在 Post Controller 中,因为事件记录界面自编写指南以来已发生变化。

关于ruby - 帕德里诺教程 : Can't Modify Frozen String (Runtime Error),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27658802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com