所以我有這個創建表單來創建時間表,其中有一堆字段,其中一個是季節。而季節表有一個名爲'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. 如何將默認值設置爲C#中的下拉列表?
- 4. 如何使用Javascript設置下拉列表的默認值
- 5. 如何設置默認值下拉
- 6. 如何將默認值設置爲下拉列表控件?
- 7. 如何根據變量設置下拉列表默認值?
- 8. 下拉列表 - 默認值
- 9. 下拉列表默認值
- 10. 如何在ActiveScaffold中設置文本輸入的默認值?
- 11. 設置的第一個值作爲默認的下拉列表
- 12. 下拉列表中如何設置默認值後,它是動態的下載
- 13. ASP.NET MVC - 設置靜態選擇的默認值(下拉列表)
- 14. ASP.NET動態數據設置下拉列表的默認值
- 15. ASP MVC3 - 下拉列表沒有設置正確的默認值
- 16. 基於數據源設置下拉列表的默認值
- 17. 如何從工作表中的另一個下拉列表中設置默認下拉列表值?
- 18. 如何設置默認下拉列表selecteditem
- 19. 在Bootstrap中設置默認下拉值
- 20. Wicket下拉選擇設置默認值
- 21. 使用ColdFusion在下拉列表中動態設置默認值?
- 22. 使用Ajax填充下拉列表時設置默認值
- 23. 在下拉列表中設置默認值
- 24. 在下拉列表中設置默認值
- 25. 在「數據驗證」下拉列表中設置默認值
- 26. 在下拉列表中設置默認值選項
- 27. 在下拉列表中設置第一個默認值MVC
- 28. Angular 2 - 默認硬編碼時在下拉列表中設置默認值
- 29. 下拉列表的默認值
- 30. Yii的下拉列表默認值
我很欣賞你的答案,但我的問題是如何在ActiveScaffold中實現這一點。 ActiveScaffold動態生成視圖。請避免一般的鐵軌答案。謝謝。 – 2010-05-06 05:13:50
難道你只是改變它的視圖,你有下拉?或者你在談論很多觀點? – 2010-05-06 12:07:25
視圖是動態生成的。沒有.rhtml或.erb文件。 ActiveScaffold需要在控制器中爲生成的視圖進行配置。 – 2010-05-06 17:17:48