2014-10-11 2 views
-1

내 사용자가 날짜와 장소를 선택하여 새 예약을 만들 수있는 양식이 있습니다.
모든 예약에는 여러 곳이있을 수 있습니다.양식에 여러 개의 숨겨진 항목을 추가하는 방법

class Reservation < ActiveRecord::Base 
    has_many :spotations 
    has_many :spots, :through => :spotations 
end 
class Spotation < ActiveRecord::Base 
     belongs_to :reservation 
     belongs_to :spot 
end 
class Spot < ActiveRecord::Base 
    has_many :spotations 
    has_many :reservations, :through => :spotations 
end 

현재 사용자에게 select_list를 하나만 지정하면됩니다. 사용 가능한 지점 만 해당 목록에 표시됩니다. (해당 항목의 당일 예약이없는 지점 만 해당)

<%= f.collection_select :spot_ids, @availablespots, :id, :name, {:prompt => true}, {class: "form-control spot_selection", id:"reservation_spot_ids", name:"reservation[spot_ids]", required:"required" } %> 

모든 것이 잘 작동합니다.

그러나 나는 모델을 여러 지점을 받아 들였습니다. 나는 사용자가 선택한 지점과 그 지점을 자동으로 (여행 시간 동안) 예약하고 싶습니다.

내 컨트롤러에서 어떻게하는지 잘 모릅니다.

모든 내 장소는 ID로 정렬됩니다. (1 ~ 20) 사용자가 사용 가능한 스폿 id = 4를 선택하면 id = 3도 예약하려고합니다.

누군가가 아이디어가 있습니까? 감사합니다,

+0

만들기 작업에서 지점 n-1을 찾아 모델에 추가합니다. 귀하의 회신에는 – phoet

+0

Thx입니다. my : spot_ids 매개 변수 (해시)가 생성 프로세스로 전송되면 어떻게 액세스 할 수 있습니까? (n-1을 얻으려고) 그리고 나서 어떻게 내가 발견 한 지점 (n-1)을 다시 창조 과정에 넣을 수 있습니까? 귀하의 대답은 – Devlesch

답변

0

나는 더 어려운 방법으로 생각하고 있다고 생각합니다. 'n'은 사용자가 선택한 번호입니다. 그러면 컨트롤러에 'n-1'을 만들 수 있습니다. 당신이 조작하기 전에 해당 해시 형식 매개 변수에서 원하는 것을 얻는 방법을 고민 한 후

항상 사용 <% logger.debug "PARAM CHECKER: #{params.inspect}" %>

을 모두 통과 PARAMS를 참조하면 n-1을 만들 수 있습니다.

+0

Thx입니다. 나는 n과 n-1이 무엇인지 이해합니다. 하지만 몇 가지 문제가 있습니다. 먼저 해시 param을 얻는 방법, 그 다음 n-1을 얻는 방법을 알고 마침내 내 n-1 값을 해시에 삽입하여 내 문제를 만들기 전에 보냅니다. . – Devlesch

+0

@Devlesch : 방금 'params'라고 부릅니다. – seoyoochan

관련 문제