我有一個控制器方法,它返回一個下拉列表,在部分渲染中呈現,但取決於部分的使用位置,RJS模板需要不同。我可以將參數傳遞給控制器,以確定哪個RJS被使用?如何從同一軌道控制器使用不同的RJS模板?
這裏是控制器的方法,這是很簡單的:
def services
respond_to do |format|
format.js {
@type = HospitalCriteria.find_by_id(params[:type_id])
@services = @type.children.all
}
end
end
這裏是RJS模板化就會自動呈現
page.replace_html 'select_service', :partial => 'hospital/services'
page.replace_html 'select_condition', :partial => 'hospital/conditions'
page.replace_html 'select_procedure', :partial => 'hospital/procedures'
page << 'if ($("chosenType") != null) {'
page.replace_html 'chosenType', @type.name
page.replace_html 'chosenService', 'Selected Service'
page.replace_html 'chosenCondition', 'Selected Condition'
page.replace_html 'chosenProcedure', 'Selected Procedure'
page << '}'
所有的解決方案的工作,但我認爲這是最乾淨的。 – 2008-10-15 02:37:40