0

我正在关注这个 Rails 教程:http: //guides.rubyonrails.org/getting_started.html我已经到了 5.2 中更改线路的部分

<%= form_for :post do |f| %>

<%= form_for :post, url: posts_path do |f| %>

每次我改变它,我都会收到这个错误:

SyntaxError in Posts#new

Showing /home/hiram/rails/blog/app/views/posts/new.html.erb where line #2 raised:

compile error
/home/hiram/rails/blog/app/views/posts/new.html.erb:2: syntax error, unexpected ':', expecting kEND
....append=  form_for :post, url: posts_path do |f| @output_buf...
                              ^
Extracted source (around line #2):

1: <h1>New Post</h1>
2: <%= form_for :post, url: posts_path do |f| %>
3:  <p>
4:    <%= f.label :title %><br>
5:    <%= f.text_field :title %>
Trace of template inclusion: app/views/posts/new.html.erb

Rails.root: /home/hiram/rails/blog
4

1 回答 1

2

那是因为url: posts_path是 Ruby 1.9 语法。如果您收到该错误,那么您必须使用 Ruby 1.8。

您必须使用:url => posts_pathRuby 1.8 的语法:

<%= form_for :post, :url => posts_path do |f| %>

您可以在此处此处阅读有关 Ruby 哈希语法的更多信息。

我应该注意到不再支持 Ruby 1.8,因此您可能应该更新到 Ruby 1.9。如果您确实更新,您可以使用其中一个url: posts_path:url => posts_path语法 - Ruby 1.9 可以同时理解它们。

于 2013-07-26T18:51:29.730 回答