如何以简单形式设置radio_buttons的默认值

时间:2017-08-15 01:50:52

标签: ruby-on-rails simple-form

我将在radio_buttons中为simple_form设置默认值。这是我的代码:

<%= f.input :library_type, as: :radio_buttons, collection: Library.library_types.collect { |k,_| [k.capitalize, k]} , checked: 'custom’%>

class Library < ActiveRecord::Base
  enum library_type: [:standard, :custom]
  ...
end

2.2.3 :002 > Library.library_types.collect { |k,_| [k.capitalize, k]}
 => [["Standard", "standard"], ["Custom", "custom"]]

我添加了一个选项checked: ‘custom’。在创建新库时,将custom默认选中。

但是,当用户已选择library_type时,这将导致错误。当用户编辑库时,即使用户选择了custom,它也会选择standard

任何人都知道如何解决这个问题?感谢。

1 个答案:

答案 0 :(得分:1)

我会把这个逻辑移到控制器上。 在 var jsonResult = Json(resultsForAjaxUI); jsonResult.MaxJsonLength = (ConfigurationManager.GetSection("system.web.extensions/scripting/webServices/jsonSerialization") as System.Web.Configuration.ScriptingJsonSerializationSection).MaxJsonLength; return jsonResult; 操作中,您必须将new字段设置为library_type,并且它会为您执行此操作。 像

这样的东西
custom

因此,它会为新实例设置class LibrariesController < ApplicationController def new @library = Library.new(library_type: 'custom') render 'edit' end def create ... end def edit #find @library here render 'edit' end def update ... end end library_type,并且不会为已创建的记录覆盖它。