我需要使用复选框(布尔字段)来实现带有自定义字段的表单(在db中没有它的引用)。
如果选中该复选框,则后端必须写一个多对多行,并将其指向更新后的对象。
问题是我在 article.rb 中的setter方法未在表单帖子中访问。
article.rb
class Article < ActiveRecord::Base
attr_accessor :highlight
def highlight
end
def highlight=(arg)
puts "NO ACCESS"
end
end
_form.html.erb
<%= semantic_form_for [:admin, @article] do |f| %>
<%= f.input :title, :label => "Title" %>
<%= f.input :text, :as => :ckeditor %>
<%= f.input :highlight, :as => :boolean, :label => "Highlight" %>
article.rb(active_admin)
ActiveAdmin.register Article do
form partial: 'form'
permit_params do
permitted = [:title, :text, :highlight]
permitted
end
end
答案 0 :(得分:0)
Javkhlan,attr_accessor :highlight
是
def highlight
@hightlight
end
def highlight=(highlight)
@highlight = highlight
end
所以,你的代码
def highlight
end
def highlight=(arg)
puts "NO ACCESS"
end
只需重写attr_accessor
生成的方法即可。尝试删除这两种方法,你会很高兴
答案 1 :(得分:0)
删除
attr_accessor:突出显示
并检查