【发布时间】:2019-09-02 08:32:02
【问题描述】:
我正在尝试制作一个表单来编辑资源的一个属性。这似乎是一件很简单的事情,但我快要死在这里了。我有处理它的代码:
member_action :revoke, method: :put do
resource.update(suspended_at: params[:suspended_at])
redirect_to resource_path, notice: 'Subscription revoked!'
end
但是我在哪里/如何实际制作表格?
我试过这段代码:
ActiveAdmin.register_page "Revoke" do
belongs_to :payment_subscription, parent_class: Payment::Subscription
content do
semantic_form_for Payment::Subscription.find(params[:id]) do
f.inputs do
f.input :suspended_at, as: :datepicker, datepicker_options: { max_date: Date.today.iso8601 }
end
f.actions
end
end
end
但它会抛出一个错误,说Could not find Subscription in active_admin,老实说,我什至不知道我是否在正确的方向。
【问题讨论】:
-
有几种方法可以做到这一点。您可以通过
register_page块中的page_actiondsl 指令来执行此操作。或者您可以使用member_action来实现这一点,但这必须放在ActiveAdmin资源文件中,可能位于app/admin/payment_subscriptions.rb。如需帮助,请告诉我您是否有payment_subscription 的工作表单和/或您是否有工作的索引视图。 -
@SjorsBranderhorst 上面的
register_page代码位于资源文件的底部。我让它与这条线belongs_to "subscriptions", class_name: 'Payment::Subscription'一起工作,并且表单显示,但是当我尝试提交时崩溃 - 可能是因为它试图找到一个名为Revoke的模型?