使用form_for时为什么会出现attribute_methods错误?

时间:2011-04-08 02:43:44

标签: ruby-on-rails form-for

当我尝试在部分或“显示”视图中执行此form_for时,我一直收到此错误。谁能解释我做错了什么?

显示第1行引出的c:/.../ show.html.erb:

c:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:272: syntax error, unexpected ')'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:273: syntax error, unexpected '?', expecting $end
Extracted source (around line #1):

1: <%= form_for(@post) do |f| %>
2:   <div class="field">
3:     <%= f.text_area :content %>
4:   </div>

此时,我的控制器只有这个:

def show  
     @post = Post.new  
end  

我的观点只有:

<%= form_for(@post) do |f| %>  
  <div class="field">  
    <%= f.text_area :content %>  
 </div>  
 <div class="actions">  
    <%= f.submit "Submit" %>  
  </div>  
<% end %>  

我的模特是:

# == Schema Information  
#  
# Table name: posts  
#   
#  id         :integer         not null, primary key  
#  content    :string(255)  
#  approved?  :boolean  
#  kid_id     :integer  
#  created_at :datetime  
#  updated_at :datetime  
#  
class Post < ActiveRecord::Base  
  belongs_to :kid  
  attr_accessible :content  
  validates :content, :presence => true, :length => { :maximum => 140 }  
  validates :kid_id, :presence => true  



default_scope :order => 'posts.created_at DESC'

end

甚至试过两个不同版本的Rails 3而没有运气......

1 个答案:

答案 0 :(得分:0)

很难确定,但根据您从视图中提供的代码和错误消息,您可能忘记关闭form_for并结束:

<%= form_for(@post) do |f| %>
   <%= f.text_area :content %>
<% end %>

编辑:

查看您的模型,我实际上设法通过在我的一个数据库列中添加问号来重现您的问题。

表格中的列不应包含任何特殊字符,例如questionmark。重命名列已批准?批准,它应该工作。