形式导轨中两个 f.select 区域之间的依赖关系和关系



如何使用数组在这两个 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
}

我想我明白了。

您可能希望更改按年份选择提供的选项 根据所选模型。

对于这种情况,一个非常常见的解决方案是使用 AJAX 呈现依赖字段。在您的情况下,当模型选择中发生变更事件时,您应该更新年份选项

这是一个非常有教义的教程:

https://kernelgarden.wordpress.com/2014/02/26/dynamic-select-boxes-in-rails-4/

PS:我真的建议将模型和年份数据持久保存在数据库表中。一旦您将使用活动记录来抽象您的数据和关系,此方法将更加干净和有效。

如果你对此有困难,现在让我:)

最新更新