【问题标题】:Rails selecting a field in grouped_collection_selectRails 在 grouped_collection_select 中选择一个字段
【发布时间】:2013-04-30 19:55:22
【问题描述】:

我在视图中使用此代码创建一个选择 grouped_collection_select(:query, :city_id, @states, :cities, :name, :id, :name, {:selected => "Chicago"}),如下所示:

我希望默认选择“芝加哥”。我怎样才能让它工作?

【问题讨论】:

  • 其他回答者请注意:将 :selected 设置为城市的 ID(不是名称)不起作用。
  • 你搞定了吗?
  • @dax 不,我最后只是添加了一个默认的“请选择位置”类型的选项weekaway.com

标签: ruby-on-rails-3


【解决方案1】:

解决方案:1

city = City.find_by_name("Chicago") 
select(:query, :city_id, option_groups_from_collection_for_select(@states,
           :cities, :name, :id, :name, city.id))

解决方案:2

city_obj = City.find_by_name("Chicago") 
grouped_collection_select(:query, :id, @states, :cities, :name, :id, :name, 
                         {:object => city_obj})

解决方案:3

@city = City.find_by_name("Chicago")
grouped_collection_select(:city, :id, @states, :cities, :name, :id, :name)

【讨论】:

    【解决方案2】:

    您好,在上面的示例中,您可以通过定义选择的芝加哥键索引来选择“芝加哥”。

    这是一个例子:

     @city_group =
                     [
                     ["Wisoncin", [["Lake Geneva", "1"], 
                     ["Elkhart Lake", "2"]]],
                     ["Michigan", [["Harbor Country", "3"], ["Traverse City", "4"]]],
                     ["Indiana", [["Bloomington", "5"], ["Valparaiso", "6"]]],
                     ["Minnesota", [["Twin Cities", 
                     "7"], ["Bloomington", "8"], ["Stillwater", 
                     "9"]]],
                     ["Florida", [["Sanibel & Captiva", "10"]]],
                     ["Illinois", [["Chicago", "11"], 
                     ["Galena", "12"]]],
                     ]
    

    并在您的意见中添加:

    <%= select_tag(:brand_id, grouped_options_for_select(@city_group, selected_key = "11", prompt = nil)) %>
    

    希望对您有所帮助!享受!

    【讨论】:

    • selected_key = "" 正是我想要的。像魅力一样工作。
    【解决方案3】:

    可以预先选择一个选项,但在文档中不是很清楚。第一个参数(此处为:city)必须是在self 上定义的实例变量的名称。存储在该实例变量中的对象必须具有以第二个参数命名的方法(此处为::id)。现在@city.id 应该返回您想要选择的城市的 ID。

    @city = City.find_by_name("Chicago")
    grouped_collection_select(:city, :id, @states, :cities, :name, :id, :name)
    

    我用一个稍微不同的例子给你a gist,以便更好地理解。注意:要点应该在 Rails 控制台中执行,以便 include 工作

    【讨论】:

    • 我觉得City.find_by_name("Chicago") 更地道一点。
    猜你喜欢
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多