0
我有工作form_for @company。但在控制器中:@company = Company.first。我有很多公司,我想通过select_tag选择公司,当我选择公司在查看页面这个form_for与这家公司合作。我可以做到吗?select_tag和呈现形式的选定值
我有工作form_for @company。但在控制器中:@company = Company.first。我有很多公司,我想通过select_tag选择公司,当我选择公司在查看页面这个form_for与这家公司合作。我可以做到吗?select_tag和呈现形式的选定值
你的表格前,只需添加一个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)
非常感谢您的回答。但它不起作用,因为这个JavaScript渲染所有页面$(this).val()。我想只在这个页面重新渲染form_for和chanche url ...我怎样才能做到这一点? – pyrchev 2011-05-28 12:31:28
您可以将表单重构为单独的操作,然后,您可以使用jquery ajax调用此操作而不是更改文档位置,并将它发送给所选表单的ID。有关具体说明,请参阅http://api.jquery.com/category/ajax/shorthand-methods/。 – moritz 2011-05-28 12:38:30
毫米,不错,但是如何在不使用jQuery的情况下实现这一点,ajax?如何才能使它与唯一的轨道功能? – pyrchev 2011-05-28 12:42:18