当我尝试在部分或“显示”视图中执行此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而没有运气......
答案 0 :(得分:0)
很难确定,但根据您从视图中提供的代码和错误消息,您可能忘记关闭form_for并结束:
<%= form_for(@post) do |f| %>
<%= f.text_area :content %>
<% end %>
编辑:
查看您的模型,我实际上设法通过在我的一个数据库列中添加问号来重现您的问题。
表格中的列不应包含任何特殊字符,例如questionmark。重命名列已批准?批准,它应该工作。