2011-03-29 70 views
2

想要創建一個選擇,告訴要傳遞給Rails 3應用程序的部分信息。Rails幫助選擇並呈現部分

當前。 比方說默認爲

<% orders_date_range = @orders.closed_today %> 

然後

<div id="reports"> 
    <%= render :partial => "report_details", :locals => { :orders => orders_date_range } %> 
</div> 

我可以創建一個選擇標籤在orders_date_range通過?或者有更好的方法來做到這一點?


UPDATE

<% orders = @orders.closed_today %> 
<% @options = [["this week", @orders.closed_this_week],["this year", @orders.closed_this_year]]%> 
<%= select 'orders', 'order', @options.collect {|f| [f[0], f[1]]}, :remote => true %> 


<div id="reports"> 
    <%= render :partial => "report_details", :locals => { :orders => orders } %> 
</div> 

不知道爲什麼,但只與選擇 '訂單', '秩序' 的工作。

applicaton.js

$("#orders_order").change(function(){ 
    $.getScript("reports"); 
}); 

reports.js.erb

$("#reports").html("<%= escape_javascript(render :partial => 'report_details', :locals => { :orders => params[:selected] }) %>"); 

回答

0

也許會很酷做到這一點作爲一個AJAX的事情....

Form.erb:

#call this at the top of your view 
<%= javascript_include_tag :defaults %> 

<%= select 'orders', 'option', @options.collect {|f| [f[0], f[1]]}, :onchange => remote_function(:url => {:action => :render_my_partial}, :with => 'Form.Element.Serialize(this)' %> 

控制器:

def form 
    @options = [["option1", option1],["option2", option2]...] 
end 

def render_my_partial 
    render update do |page| 
    page.replace_html 'reports', :partial => 'report_details', :orders => params[:orders][:option] 
    end 
end 
+0

試着填補空白與你的......,但它不是射擊。添加方法並添加到路由中。是否選擇了「參數」,「訂單」,[[「本週」,@ orders.closed_this_week],[「本月」,@ orders.closed_this_month]]:onchange,但不工作。 – pcasa 2011-03-29 15:19:20

+0

更新了一些更徹底的 – 2011-03-29 15:54:13

+0

使用jquery,而不是原型。思想可以把我自己的轉換看成是,但不能。 – pcasa 2011-03-29 16:56:55