如何在活动管理员中获取 form.input 的值(ruby on rails)
How do I get the value of a form.input in active admin (ruby on rails)
我正在使用管理框架 'active admin' 构建 RubyOnRails 应用程序。我的表单中有一个如下所示的下拉菜单:
form do |f|
f.inputs do
f.input :art, as: :select, :include_blank => "Bitte wählen!", label: 'art', :collection => ["Fachobjekt", "Gruppe", "Externes Dokument"]
end
f.actions
end
现在我想在我的控制器中检查选定的值。我试过了:
controller do
after_save :update_object
def update_object(guid)
if params[:art].values == 'Fachobjekt'
# do stuff
end
end
end
我在下拉列表中选择了 'Fachobjekt',但我得到的是 NoMethodeError "undefined method 'values' for nil:NilClass"
,因此 params[:art]
为空。
我的问题是:获取 f.input 字段的选定值的正确语法是什么?感谢任何提示!
[:root_tables] 是模型名称。我把它放在 [:art] 之前,就像 params[:root_tables][:art] 但同样的错误。
放一个
raise params.inspect
就在
之前
if params[:art]
行。您应该能够识别发布的信息在参数中的位置。
感谢您的所有提示!特别是使用 binding.pry 进行调试的提示帮助了我。我现在使用 f.select 而不是 f.input:
form do |f|
f.inputs do
f.select :art, ["Fachobjekt", "Gruppe", "Externes Dokument"], :prompt => 'Bitte wählen! '
end
f.actions
end
对于select,参数[:root_table][:art] 正在工作:
controller do
after_save :update_object
def update_object(guid)
if params[:root_table][:art] == 'Fachobjekt'
# do stuff
end
end
end
当我使用 f.input 时,[:art] 在 binding.pry 或加注 params.inspect 时甚至没有出现。
f.select 确实如此。
不过,至少现在可以用了,谢谢!
我正在使用管理框架 'active admin' 构建 RubyOnRails 应用程序。我的表单中有一个如下所示的下拉菜单:
form do |f|
f.inputs do
f.input :art, as: :select, :include_blank => "Bitte wählen!", label: 'art', :collection => ["Fachobjekt", "Gruppe", "Externes Dokument"]
end
f.actions
end
现在我想在我的控制器中检查选定的值。我试过了:
controller do
after_save :update_object
def update_object(guid)
if params[:art].values == 'Fachobjekt'
# do stuff
end
end
end
我在下拉列表中选择了 'Fachobjekt',但我得到的是 NoMethodeError "undefined method 'values' for nil:NilClass"
,因此 params[:art]
为空。
我的问题是:获取 f.input 字段的选定值的正确语法是什么?感谢任何提示!
[:root_tables] 是模型名称。我把它放在 [:art] 之前,就像 params[:root_tables][:art] 但同样的错误。
放一个
raise params.inspect
就在
之前if params[:art]
行。您应该能够识别发布的信息在参数中的位置。
感谢您的所有提示!特别是使用 binding.pry 进行调试的提示帮助了我。我现在使用 f.select 而不是 f.input:
form do |f|
f.inputs do
f.select :art, ["Fachobjekt", "Gruppe", "Externes Dokument"], :prompt => 'Bitte wählen! '
end
f.actions
end
对于select,参数[:root_table][:art] 正在工作:
controller do
after_save :update_object
def update_object(guid)
if params[:root_table][:art] == 'Fachobjekt'
# do stuff
end
end
end
当我使用 f.input 时,[:art] 在 binding.pry 或加注 params.inspect 时甚至没有出现。 f.select 确实如此。 不过,至少现在可以用了,谢谢!