0

ネットワークマップを再構築しましたが、ネストされたモデルを機能させることができないようです。IDF =>スイッチとして設定されます(各IDFには多くのスイッチがあります)。IDFのスイッチを一覧表示できるようにしようとしていますが、次のエラーが発生します。

Mysql2 :: Error:不明な列'switches.idf_id' in'where句':SELECT switches。* switches FROMWHERE switchesidf_id= 1

何らかの理由で、スイッチ用にmysqlテーブルが作成されたときに、スイッチIDにマップするための列が作成されていないと思います。なぜそうではないのか分かりません。モデルを編集してプロジェクトを数回再レーキしましたが、何が欠けているのかわかりません。どんな助けでも大歓迎です!

app / models / idf.rb:

class Idf < ActiveRecord::Base
  attr_accessible :location, :room_number
  has_many :switches
  accepts_nested_attributes_for :switches
end

app / models / switch.rb:

class Switch < ActiveRecord::Base
  attr_accessible :model, :title
  belongs_to :idf
end

app / views / idfs / show.html.erb:

<p id="notice"><%= notice %></p>

<p>
  <b>Location:</b>
  <%= @idf.location %>
</p>

<p>
  <b>Room number:</b>
  <%= @idf.room_number %>
</p>

<h2>Switches:</h2>
<%= render @idf.switches %>

<h2>Add a switch:</h2>
<%= render "switches/form" %>

<%= link_to 'Edit', edit_idf_path(@idf) %> |
<%= link_to 'Back', idfs_path %>

^^スイッチ機能を追加しようとするまで、すべてが正常に機能しました。

4

1 に答える 1

1

これは、Switchデータベースの移行に関する問題のように聞こえます。移行を貼り付けることはできますか?また、移行とモデルを手動で生成していますか、それとも「railsgenerate ...」を使用していますか?

移行は次のようになります。

class AddSwitch < ActiveRecord::Migration

  #assuming Rails 3
  def change
    create_table :switches do |t|
      # Add attributes
      t.references :idf  # same as t.integer :idf_id
    end
  end

end
于 2012-06-25T18:58:57.667 に答える