所以我有这个创建表单来创建时间表,其中有一堆字段,其中一个是季节。而季节表有一个名为'is_current'的字段,如果设置为1,则表示它是当前赛季。创建表单显示时,我希望在季节下拉菜单中默认选择当前季节。任何帮助将不胜感激。谢谢。ActiveScaffold:如何设置下拉列表的默认值?
回答
我相信这会是这样的
#controller
@seasons = Season.all
@current_season = seasons.detect{ |s| s.is_current==true }
#view
select('schedule', 'season_id', @seasons.collect{ |s| [s.name, s.id] },
:selected => @current_season)
编辑
对不起,误会......我会尝试像下面这样:
上Season
模型创建一个named_scope
named_scope :current, :conditions => "is_current = true"
并尝试设置此选项
config.columns[:seasons].options = {:selected => Season.current}
我不知道它是否有效。这只是一个镜头。
您不应该在视图中进行模型调用。 – vonconrad 2010-05-06 00:51:30
我实际上并没有说要在视图中进行呼叫,但我会指定 – 2010-05-06 00:57:50
您可以使用select
表单方法中的:selected
属性,虽然这会预计option
标记的值。让我们做一个简单的下拉列表具有季节作为选项值的ID,本赛季作为用户看到的内容和特定记录的名称默认选中的,就像这样:
<option value="123" selected="selected">Name of season</option>
<option value="234">Another season</option>
在这种情况下, :selected
属性将预期123
,以便它知道使其成为默认值。
可以完成与下面的代码:
控制器:
@seasons = Season.all
@current_season = @seasons.detect{|s| s.is_current == 1}.id
视图(在声明的form_for):
<%= f.select :season_id, @seasons.collect {|s| [s.name, s.id]}, :selected => @current_season %>
我找到了解决办法。你必须在适当的帮助文件中添加一段代码,在我的例子中是schedules_helper.rb。
def seasons_list
s = Season.find(:all, :order => 'is_current DESC').map{|t| [t.name, t.id]}
end
这将确保当前季节始终是下拉菜单的第一个选项,因此默认情况下会被选中。
谢谢大家,为您解答。
- 1. 设置默认值下拉
- 2. 设置默认下拉值
- 3. 如何使用Javascript设置下拉列表的默认值
- 4. 如何根据变量设置下拉列表默认值?
- 5. 如何将默认值设置为下拉列表控件?
- 6. 下拉列表默认值
- 7. 设置的第一个值作为默认的下拉列表
- 8. 如何在ActiveScaffold中设置文本输入的默认值?
- 9. ASP.NET动态数据设置下拉列表的默认值
- 10. ASP MVC3 - 下拉列表没有设置正确的默认值
- 11. 下拉列表中如何设置默认值后,它是动态的下载
- 12. 如何从工作表中的另一个下拉列表中设置默认下拉列表值?
- 13. 使用Ajax填充下拉列表时设置默认值
- 14. 使用ColdFusion在下拉列表中动态设置默认值?
- 15. 在下拉列表中设置默认值选项
- 16. Wicket下拉选择设置默认值
- 17. 如何设置默认下拉列表selecteditem
- 18. 下拉列表的默认值
- 19. 默认分配下拉列表的值
- 20. XSLT下拉列表中的默认值
- 21. 如何设置空值(默认)到下拉列表中的MVC 4
- 22. 基于viewbag设置默认的下拉默认值
- 23. 默认值下拉列表中
- 24. Yii2下拉列表默认值
- 25. 如何设置下拉列表值?
- 26. 如何在多重选择下拉列表角JS设置默认值
- 27. 如何在JSP中设置下拉/选择的默认值?
- 28. 如何设置一个下拉的powerapps默认值
- 29. 如何在Django中设置下拉菜单的默认值?
- 30. 如何为sitecore中的下拉链接设置默认值
我很欣赏你的答案,但我的问题是如何在ActiveScaffold中实现这一点。 ActiveScaffold动态生成视图。请避免一般的铁轨答案。谢谢。 – 2010-05-06 05:13:50
难道你只是改变它的视图,你有下拉?或者你在谈论很多观点? – 2010-05-06 12:07:25
视图是动态生成的。没有.rhtml或.erb文件。 ActiveScaffold需要在控制器中为生成的视图进行配置。 – 2010-05-06 17:17:48