저는 Ruby on Rails에 익숙하며 외래 키 관계와 어려움을 겪고 있고 양식 상자를 풀고 있습니다. Jobtitle 테이블에 외래 키가있는 Person 테이블이 있습니다. Person은 jobtitle_id를 가지고 있고, Jobtitle은 MySQL에 pk id가 설정되어 있습니다. JobTitleRuby Newbie - 외래 키 및 양식의 드롭 다운
에서 사람 모델class Person < ActiveRecord::Base
belongs_to :jobtitle, :foreign_key => "jobtitle_id", :class_name => "Jobtitle"
attr_accessible :id, :jobtitle
class Jobtitle < ActiveRecord::Base
attr_accessible :id, :jobtitle
has_many :people
에서 컨트롤러 : show.html에서
<%= f.collection_select(:jobtitle_id, @jobtitles, :id, :jobtitle) %>
: 편집 양식에서
class PeopleController < ApplicationController
before_action :set_person, only: [:show, :edit, :update, :destroy]
before_filter :prepare_jobtitles
...
private
def prepare_jobtitles
@jobtitles = Jobtitle.all
end
은 드롭 다운이 주어진다. erb.
<p>
<strong>Jobtitle:</strong>
<%= select_tag 'jobtitle_id', options_for_select(Jobtitle.find_by_id(:jobtitle_id)) %>
문제는 다음과 같습니다
가(1) 편집 양식은 기본 테이블을 업데이트하지 않습니다. jobtitle_id를 다시 전달하지 않기 때문입니까? 또는 활성 레코드가 레코드를 갱신하려고 시도 할 때 외부 키 제한 조건이 실패합니다.
(2) 정말 텍스트 괜찮을 것처럼, 쇼 페이지에서 dropdown
상자를 원하지만, <%= @person.jobtitle %>
표시 # Jobtitle:0x4ea4dc0
를 사용하지 않는
사람이 올바른 방향으로 날 지점 수 있을까요?
후 귀하의'Jobtitle'와'Person' 모델 – Pavan
망가 사용''의 attributes'이 잘못
<%= @person.jobtitle %>
을주고있다 인스턴스 '를 사용합니다. 제목 또는 이름을 사용합니다. – Pavan