Почему я получаю ошибку attribute_methods при использовании form_for? - PullRequest
0 голосов
/ 08 апреля 2011

Я продолжаю получать эту ошибку, когда я пытаюсь сделать это form_for, либо в частичном, либо в представлении "show". Может кто-нибудь объяснить, что я делаю не так?

Показывает c: /.../ show.html.erb, где поднята строка # 1:

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 голосов
/ 08 апреля 2011

Трудно сказать наверняка, но, основываясь на коде, который вы указали в представлении, и сообщении об ошибке, вы, вероятно, забыли закрыть форму form с концом:

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

Редактировать:

Глядя на вашу модель, мне действительно удалось воспроизвести вашу проблему, добавив вопросительный знак в один из столбцов моей базы данных.

Столбцы в ваших таблицах не должны содержать никаких специальных символов, таких как вопросительный знак.Переименовать колонку утверждено?одобрено и должно работать.

...