0

네트워크 맵을 다시 작성 했으므로 중첩 모델을 작동시키지 못했습니다. 그것은 IDF => Switch (각 IDF에는 많은 스위치가 있음)로 설정되어 있습니다. 나는 IDF의 스위치 할 목록이 될하기 위해 노력하고있어,하지만 난 다음 오류 얻을 :Ruby on Rails에서 중첩 모델을 어떻게 보십니까?

이 Mysql2 :: 오류

: 알 수없는 열에서 'switches.idf_id가' '절'. switches을 선택 * switches 곳에서 switches. idf_id = 1

나는 스위치를 위해 mysql 테이블이 만들어 졌을 때 스위치 아이디에 매핑 할 컬럼이 없다고 가정하고있다. 왜 그것이 아닌지 나는 모른다. 나는 모델을 편집하고 프로젝트를 두 번 다시 레이크하며 무엇이 빠졌는지 모른다. 어떤 도움을 많이 주시면 감사하겠습니다!

응용 프로그램/모델/idf.rb :

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

응용 프로그램/모델/switch.rb :

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

응용 프로그램/뷰/IDF의/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 %> 

^^ 스위치 기능을 추가 할 때까지 모든 것이 잘 작동했습니다.

답변

1

Switch 데이터베이스 마이그레이션에 문제가있는 것 같습니다. 마이그레이션을 붙여 넣을 수 있습니까? 그리고 수동으로 마이그레이션 및 모델을 생성하거나 "rails generate ..."를 사용합니까?

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 
+0

아, 그래서 감사합니다 :

마이그레이션과 같은 보일 것이다. 나는 그것을 즉시 시도 할 것이지만 나는 당신이 옳다고 확신한다. IDF : 스 캐 폴딩 코드에 참조를 추가하는 것을 완전히 잊어 버렸습니다. –

관련 문제