0

这对我来说似乎是一个再次出现的问题(可能在概念上),希望这次我能解决它!#还在学习

两种型号。一个集合 has_many :examples 一个示例 belongs_to :collection

集合有一个标题:字符串示例有collection_id:整数和描述:文本

在我的收藏/展示中,我还希望能够通过这个简单的表单添加一个示例:

<%= form_for(@example) do |e| %>

    <h3><%= e.label :description %></h3>
    <%= e.text_area :description %>
    <%= e.submit %>

<% end %>

但我得到一个 NoMethodError ......

undefined method `description' for #<Collection:0x007fe3c4087898>. 

我知道@collection 没有:description,所以这意味着我必须在 Collection 和 Example 之间创建一个链接,对吗?

假设我的猜测是正确的,我尝试了:

rails g migration AddExampleRefToCollections example:references

但出现以下错误:

SQLite3::SQLException: near "references": syntax error: ALTER TABLE "collections" ADD "example" references/Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `initialize'
4

1 回答 1

1

如果Collection有很多Examples,那么Example应该是Collection数据库中 id 引用的那个:

rails g migration AddCollectionIdToExamples collection_id:integer

在 CollectionsController#show 中,确保您正在实例化一个新的空示例以用于form您将要使用的:

def show
  #stuff
  @example = @collection.examples.new
于 2013-08-18T23:54:02.953 回答