2012-05-16 5 views
1

새로운 작업을위한 레일보기가 있습니다. 양식을 생성하기 위해 formtastic을 사용하고 선택적으로 컨트롤러에 전달 될 수있는 템플릿을 가지고 있습니다. 내가 원하는 무엇formtastic url에서 선택적 매개 변수 전달

이 proforma_id 내가 그것을 할 수있는 방법을 발견 한 양식

를 제출 create 메소드를 통해 전달되는 확인하지만 난이 조금 hackish 있는지 알고 싶어요

<% params = {:proforma_id => @proforma.id} unless @proforma.nil? %> 
<%= semantic_form_for @document, :url => documents_path(params) do |f| %> 

어쩌면 난 그냥 컨트롤러에 PARAMS 라인을 넣어해야하고 그 일의 깨끗한 더 루비 같은 방법이없는 경우?

답변

2

두 가지 방법은 첫 번째 방법은 URL에 그것을 전달하는 것입니다

당신이 발견 한 것처럼 ... 당신이 POST 데이터에 원하는 경우 URL에 원하는 여부에 따라 전달할 수 params. 여분의 PARAM이 빈 채로있는 경우, 그냥, IIRC을 표시하지 않습니다 당신은 컨트롤러에서 그 변수를 설정할 수 있습니다,하지만 당신은 아마

<%= semantic_form_for @document, :url => documents_path(:proforma_id => @proforma.try(:id)) do |f| %> 

멀리 얻을 수 있습니다.

다른 옵션은 숨겨진 변수로 양식에 넣어하는 것입니다 이것과 다른 많은 상황에 이상적 것 (ID)

<%= hidden_field_tag :proforma_id, @proforma.try(:id) %> 
+0

이 .try처럼 보인다! – sgbett