매우 간단한 문제가 있지만 좋은 해결책을 찾을 수 없습니다. 나는 루비의 조회 코드가 (예를 들어, 국가에 살고있는 학생) : RoR 조회 예
# State lookup (id, name)
class State < ActiveRecord::Base
has_many :students
end
# Class that belogs to a state
class Student< ActiveRecord::Base
belongs_to :state
end
및보기/학생/new.html.erb보기
, 나는 드롭 다운으로 상태를 표시합니다 를<p>
<%= f.label :state %><br />
<%= f.collection_select :state, State.find(:all),
:id, :name, :prompt => "Select a State" %>
</p>
지금까지 너무 좋아,하지만 난 오류가있어 저장 쳤을 때 :
State(#37872860) expected, got String(#21001240)
나는 Student.create에 상태 개체 대신 문자열을 보내고있다로, 합리적인 것 같다 무엇을 방법.
RoR에서 이것을 처리하는 가장 좋은 방법은 무엇입니까? 컨트롤러에서 State 객체를 손으로 가져 와서 매개 변수 해시로 바꾸는 것이 더 나은 방법이라고 생각합니다.
대단히 감사합니다. 페르난도
JDL에게 감사 드려요.하지만 JDL을 사용해 보았습니다. 렌더링 단계에서 #에 대해 'state_id'메서드가 정의되지 않았습니다. –
Fernando
보기에서 form_tag 줄을 게시 할 수 있습니까? – jdl
jdl, 대단히 감사합니다. 문제는 제 학생 테이블에서 상태 열의 이름이 'state_id'가 아니라 'state'였습니다. 이로써 : view에서 참조 될 경우 state_id가 떨어집니다. 당신의 힌트가 테이블에있는 문제를 찾았 기 때문에 그것을 다시 만들고 이제는 당신이 말한대로 작동하고 있습니다 (f.collection_select : state_id, ... 그대로). 감사합니다; fernando – Fernando