如何在这两个f.select与数组之间建立依赖关系? 我想,对于每个模型,只提供某些年份,而不是全部。
<%= form_for (@car) do |f| %>
<%= f.select :model, @model, {}, {class: "form-control"} %>
<%= f.select :year, @year, {}, {class: "form-control"} %>
<%= f.submit %>
<% end %>
这是我的阵列:
@model = ['Model', 'Wrangler', 'Wrangler Unlimited',....]
@years = [
'Year', 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010,
2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000,
1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992,
1991, 1990, 1989, 1988, 1987
]
我尝试使用if / else从控制器执行此操作,但它没有工作。
@model.each { |e|
if e == @model[0]
@year = @years[0]
elsif e == @model[1]
@year = @year.all
else e == @model[2]
@year = @year[1...10]
end
}
答案 0 :(得分:0)
我想我明白了。
您可能想要更改年份选择提供的选项 根据所选模型。
这种情况的一个非常常见的解决方案是使用AJAX渲染依赖字段。在您的情况下,您应该在模型选择中发生change事件时更新年选项。
这是一个关于此的非常教学的教程:
https://kernelgarden.wordpress.com/2014/02/26/dynamic-select-boxes-in-rails-4/
PS:我真的建议在数据库表中保留Model和Year数据。一旦您使用Active Record抽象数据和关系,这种方法将更加干净和有效。
如果您遇到困难,现在就让我:)