2011-05-28 73 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