rails form_for url:posts_path错误

时间:2013-07-26 18:34:58

标签: ruby-on-rails

我正在关注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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

我应该注意不再支持Ruby 1.8,所以你应该更新到Ruby 1.9。如果你做了更新,你可以使用url: posts_path:url => posts_path语法 - Ruby 1.9同时理解它们。