2011-05-28 72 views
0

我有工作form_for @company。但在控制器中:@company = Company.first。我有很多公司,我想通過select_tag選擇公司,當我選擇公司在查看頁面這個form_for與這家公司合作。我可以做到嗎?select_tag和呈現形式的選定值

回答

0

你的表格前,只需添加一個select_tag這樣的:

= select_tag :chosen_company_id, options_from_collection_for_select(Company.all, 'id', 'name') 
與JavaScript(jQuery的變體)

然後做:

$(document).ready(function(event){ 
    $('#chosen_company_id').change(function(event){ 
    url = "http://your.domain.com/companies/" + $(this).val(); 
    document.location.href = url; 
    }); 
}); 

而且不要忘記改變控制器代碼:

@company = (params[:id] ? Company.find(params[:id]) : Company.first) 
+0

非常感謝您的回答。但它不起作用,因爲這個JavaScript渲染所有頁面$(this).val()。我想只在這個頁面重新渲染form_for和chanche url ...我怎樣才能做到這一點? – pyrchev 2011-05-28 12:31:28

+0

您可以將表單重構爲單獨的操作,然後,您可以使用jquery ajax調用此操作而不是更改文檔位置,並將它發送給所選表單的ID。有關具體說明,請參閱http://api.jquery.com/category/ajax/shorthand-methods/。 – moritz 2011-05-28 12:38:30

+0

毫米,不錯,但是如何在不使用jQuery的情況下實現這一點,ajax?如何才能使它與唯一的軌道功能? – pyrchev 2011-05-28 12:42:18