我将在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
。
任何人都知道如何解决这个问题?感谢。
答案 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
,并且不会为已创建的记录覆盖它。