gpt4 book ai didi

ruby - Rails 3.2.8 与 Ruby 1.9.3 兼容吗?

转载 作者:数据小太阳 更新时间:2023-10-29 08:50:53 24 4
gpt4 key购买 nike

我一直在尝试关注 official rails guide并遇到了问题。在新项目中使用的脚手架代码似乎有语法错误消息:

rails 生成脚手架帖子名称:字符串标题:字符串内容:文本

很简单吧?我刚刚浏览了官方 ruby​​onrails.org“创建博客”教程的第一页。但是当我访问 http://localhost:3000/posts 时,我遇到了这个问题。

语法错误信息:

/projects/blog/app/controllers/posts_controller.rb:9: syntax error, unexpected ':', expecting '}'
format.json { render json: @posts }
^

关于 step 6.3我应该看到一个简单的“列表帖子”页面,大概没有博客条目。

我的 posts_controller.rb 文件:

class PostsController < ApplicationController
# GET /posts
# GET /posts.json
def index
@posts = Post.all

respond_to do |format|
format.html # index.html.erb
format.json { render json: @posts }
end
end
...(continued. This was all generated via a scaffold.)

我的设置:

guide说:

This Guide is based on Rails 3.2. Some of the code shown here will not work in earlier versions of Rails.

我的 rails -v 说:

Rails 3.2.8

rubyonrails.org说:

We recommend Ruby 1.9.3 for use with Rails. Rails 3.2 is the last one that supports Ruby 1.8. Ruby 1.8.6 and earlier are not supported, neither is version 1.9.1.

我的 ruby -v 说:

ruby 1.9.3p194(2012-04-20 修订版 35410)[x86_64-darwin12.2.0]

即使在尝试了不同版本的 Ruby(使用 rbenv)之后,我总是会收到 SyntaxError 消息。以下是我尝试过的版本:

1.9.2-p290

1.9.2-p320

1.9.3-p194(最新)

解决方法:

format.json { render json: @post } 更改为 format.json { render :json => @post } 解决了这个问题。

我的问题:

为什么使用最新版本的 Ruby 和最新版本的 Rails,当版本应该兼容时我会得到 SyntaxError?此时在官方教程的第一页,我什至还没有写任何 ruby​​。我的 posts_controller.rb 文件中的这些行是由最新稳定版本的 Rails 生成 并且语法已过时? Rails 尚未更新为使用可追溯到 1.9.2 版的 Ruby 语法?

最佳答案

在您的 Gemfile 中指定 ruby​​ 版本,如 ruby "1.9.3" 就在源代码下方。看看是否可以解决问题。

编辑 我在部署到 heroku 并将其添加到我的 Gemfile 时遇到了这个问题修复了错误。显然它试图使用 1.8.7 而不是 1.9.3,即使 heroku 指定的 ruby​​ 版本是 1.9.3

关于ruby - Rails 3.2.8 与 Ruby 1.9.3 兼容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13358122/

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