이전에이 질문을 올렸습니다 : Passing parameters on button click in Rails전달 된 매개 변수가 레일에서 읽히지 않습니다
그리고 대답은 잘 작동합니다. 그러나 전달 된 매개 변수는 book_now
메서드에서 전달되는 @event_option_id
조차도 erb에서 호출 할 수 없습니다.
는 Parameters: {"event"=>"4", "event_option_id"=>"5"}
로 내 서버 로그에 보여주는하지만 <%= @event_option_id %>
를 사용하려고 할 때 다시 빈오고, 난 그냥 to_i
로 시험 할 때, 그 0
대신 5
을 보였다. 내 EventsController
이 방법이 있습니다
def book_now
@event_option_id = params[:event_option_id]
end
을 그리고 내 링크는 다음과 같이 매개 변수를 전달합니다 :
<%= link_to "Book This Event Now!", book_now_path(:event => @event.id, :event_option_id => e.id), :id => "book-now-button", :class => "button" %>
은 내가에서 해당 값에 액세스 할 수 있도록이 @event_option_id
을 통과하는 것을 시도하고있다 내 데이터베이스.
각 EventOption
price
,
description
을 가지고 있으며, 그것은 고유
name
, 나는 여러 가지 방법들에 액세스하려고 할 때, 나는 예를 들어,
(NoMethodError: undefined method 'price' for nil:NilClass)
를 얻을.
어떤 일이 벌어지고 있는지 알 수 있습니까?
컨트롤러에서 값을 DB에 저장하고 있습니까? 그리고 그들이 실제로 구원 받았다는 것을 확인 했습니까? 매개 변수를 성공적으로 전달한다고해서 실제로 DB에 저장되는 것은 아닙니다. – HolyMoly
나는 실제로, 나는 잘 모르겠다. 항목과 매개 변수는 이미 내 DB에 있습니다. 사용자가 드롭 다운에서 선택하면 앱이 해당 event_id를 가져 와서 div를 관련 모델의 옵션으로 채 웁니다. 위의 버튼을 눌러 예약 페이지로이 매개 변수를 보내면 이미있는 연결을 호출하면됩니다. 말이 돼? – GeekFitness
이벤트 오브젝트가 이미 존재하는 event_option_id를 가지고 있다면 뷰에서'@ event.event_option_id'로 호출 해 보았습니까? – HolyMoly