未定义的方法`category_id'用于#<post:0xade8ce4> </post:0xade8ce4>

时间:2014-01-13 16:13:06

标签: ruby-on-rails

我有一个Post模型和一个Category模型。我用活动记录安装了simple_form gem。我正在尝试实现this github与基础的简单形式关联的步骤。但是我得到了这个奇怪的错误,我无法解决。

posts.rb

class Post < ActiveRecord::Base
  validates_presence_of :title, :body
  has_many :comments
  belongs_to :category
end

category.rb

class Category < ActiveRecord::Base
  has_many :posts
end

_form.html.erb

<%= simple_form_for @post do |f| %>
  <% if @post.errors.any? %>
    <div id="error_explanation">
      <ul>
      <% @post.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.input :title %>
  </div>
  <div class="field">
    <%= f.input :body %>
  </div>
  <div class="field">
    <%= f.association :category %>
  </div>
  <div class="actions">
    <%= f.button :submit %>
  </div>
<% end %>

1 个答案:

答案 0 :(得分:1)

您可能错过了帖子模型中的category_id,因为hd1说。你应该进行迁移:

rails g migration AddIdToPost

并在迁移文件中:

def change
  add_column :posts, :category_id, :integer
end

然后运行rake db:migrate