문제

오, 저와 함께 부탁드립니다 ... 예약 모델과 운전자 모델이 있습니다. 운전자에게는 많은 예약이 있으며 예약은 운전자에게 속합니다.

예약을 추가하거나 편집 할 때 사용자가 드라이버의 사용자 이름을 입력 할 수 있기를 원합니다. 사용자 이름은 최종 사용자가 각 드라이버에게 숫자를 제공하는 것보다 독특하고 쉽습니다.

이제 이것이 내가 한 방법입니다.

def create
  if params[:booking][:driver].empty? 
    params[:booking][:driver] = nil 
  else
    @driver = Driver.find(:first, :conditions => { :username => params[:booking][:driver] })
    params[:booking][:driver] = @driver
  end

이 코드는 제출에 적합하지만 양식이로드되면 객체 (예 : #)의 참조를 표시하고 사용자 이름을 표시해야합니다. 드라이버 사용자 이름의 값을 취하기 위해 편집보기에서 < %= f.text_field : driver %>를 변경하려면 어떻게해야합니까?

나는 이것에 대해 올바른 방법으로 가고 있습니까, 아니면 내가 필요한 일을 할 수있는 죽은 쉬운 레일 방법이 있습니까?

도움이 되었습니까?

해결책

"그러나 양식이로드 될 때"생성에 실패했을 때 또는 편집 할 때를 의미합니까? 전체 업데이트를 게시하고 액션을 만들 수 있습니까?

params [: booking] [: driver] = @driver.username은 객체 대신 문자열로 매개 변수를 채워야하지만 이것이 실제로 원하는 것이 확실하지 않습니다. 비워지면 비를 비추는 대신 비워 두십시오.

당신이 여기서하고있는 일은 옳지 않은 것처럼 보이지 않습니다. 어쨌든 필드가 드라이버 _id 인 드라이버의 선택 상자를 고수하는 것이 더 합리적 일 것입니다. 텍스트 상자를 정말로 사용하고 싶다면 도와 드리겠습니다. 먼저 코드를 게시하십시오.

당신은 이것을 본 적 있습니까? 조금 더 안내하는 데 도움이 될 것입니다.

http://railscasts.com/episodes/57-create-model-through-text-field

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top