1

좋습니다.이 파일은 정상입니다. 나는 다음과 같은 다른 것들 중에서, 관계를 포함, 액티브 오브젝트 있습니다Rails 자체 참조 HABTM 활성 레코드 객체에 대한 중첩 된 편집 양식

class Sample < ActiveRecord::Base 
    has_and_belongs_to_many :related_samples, 
          :class_name => "Sample", 
          :join_table => "related_samples", 
          :foreign_key => "sample_id" 
          :associated_foreign_key => "related_id" 
end 

을 그리고 여기에 대한 계획입니다 :

def self.up 
    create_table :samples do |t| 
    t.string :related_info 
    t.string :name 
    #There's other info, but it is not related to this problem 
    end 

    create_table :related_samples, :id => false do |t| 
    t.references :sample 
    t.references :related 
    t.timestamps 
    end 
end 

이 완벽하게 작동합니다. sample_object.related_samples를 요청하면, 내가 할당 한 다른 Sample 객체가 무엇이든 제공합니다.

문제는 내보기에 대한 편집 작업과 함께 제공됩니다. 내 목표는 사용자가 사용 가능한 모든 샘플 목록에서 샘플 객체를 선택하여 기존의 관련 Sample 객체를 다른 샘플 객체로 대체 할 수있게하는 것입니다. 그리고 나는 이것을 (가능하다면) fields_for 헬퍼 메소드 내부에 구현하고 싶다. 그래서 업데이트를하는 것이 정말 간단하다. 이 방법을 구현하는 방법을 모르거나 심지어 할 수 있습니다. 가능한가? 그렇다면 어떻게?

+0

이 문제를 해결 했습니까? – CharlieMezak

답변

0

저는이 문제를 해결하는 것이 불가능 해 보이는 매우 중요한 것을 깨달았습니다. 다른 하나가 관련된 Sample 개체를 변경할 수 있기를 원한다면 그 참조를 의미합니다. 예 :이되도록

Sample1.related_sites == [Sample2, Sample3] 

나는, 내가 다른 샘플 대신에 Sample4을 사용할 수 있도록 뭔가를하고 싶지 :

Sample1.related_sites == [Sample2, Sample4] 

을하지만 sample3을 그대로 유지하고 싶다. 즉, 데이터베이스 스키마를 수정하는 것보다 쉽게 ​​수행 할 수있는 방법이없는 참조를 변경해야한다는 의미입니다. 그래서 당신이 아직 아이디어를 가지고 있다면, 나는 그것을 듣고 싶지만, 나는 아마도 변화시킬 것입니다. 고마워, SO 커뮤니티!