제 질문이 이해할 수 있기를 바랍니다. 그렇지 않으면 명확히 밝힙니다.레일에 까다로운 루비 문제가 있습니다. 쉬운 해결책이 있습니까?
우리는이 스포츠 경기가 열리 며, 나는 사람들을 등록하게되어 기쁩니다. :)
사실 :
- 하나는 5-10 사람의 팀을 보유하고 있습니다.
- 사람들이 시작하는 순서를 알아야합니다.
- 팀 리더가 누구인지 알아야합니다.
나는 한 다음 스타일에서 양식 :
o [____Write first name here___]
<은 --- 이것은 텍스트 필드o [____Write second name here__]
o [___________ ... ____________]
- 에게 ...입니다
"o"는 라디오 버튼이며 팀 리더를 고르는 데 사용됩니다.
모델 사람과 모델 팀입니다. 모든 팀은 leader_id (이는 개인 ID 중 하나임)입니다. 또한 모든 팀 :has_many
명.
<input id="team_leader_id_**????**"
name="team[leader_id]"
type="radio"
value="**????**"
/>
<input id="team_leader_id_**????**"
name="team[leader_id]"
type="radio"
value="**????**"
/>
# etc.
내 질문 : 컨트롤러에서
나는 (라디오 - 버튼에) 가지고있는보기에서def create
@team = Team.new(params[:team])
@team.save #just assume there are no errors
end
는이 내가 **????**
에 넣어해야합니까?
아직 작성되지 않았기 때문에 아직 사람들의 ID를 알 수 없습니다. 레일에있는 루비가 모든 것을 올바르게 인식하고 링크시키는 메타 ID를 거기에 두어야합니까?
당신은
으로 그 순간에 내가 못생긴 해킹을하고 있어요 말했다 (그것은 내가 사용하고 해킹에 대해 설명) 나머지 부분을 읽어 필요가 없습니다 : 생성하지 않고 (먼저 팀을 저장을 지도자), 다음의 DB에서 같은 팀을 가져 그 사람을 얻고,
params[:team][:leader_id].
마지막으로 팀의 leader_id 분야에서이 사람의 ID를 저장하는 값과 일치하는 첫 번째 사람을 찾을 수 있습니다.
그러나이 코드는 비효율적이며 거대하고 버그가있어서 더 쉬운 방법이라고 생각합니다.
감사합니다. 내 게시물을 업데이트했습니다. 어리석은 실수, 문제가 남아 있습니다. :) – jacob
그냥 명확히하기 위해 : 레일에 루비는 "가치"속성에 지정된대로 team.leader_id를 설정합니다. 예를 들어, 두 번째를 선택하면 "1"이 될 수 있습니다. 그러나 나는 그 필드에있는 사람의 ID를 가지고 싶습니다. – jacob
params [: team] [: persons] [params [: team] [: persons_attributes] [: leader_id]] [: id] - 내 대답을 업데이트하여 자세히 설명하겠습니다. –