Rails_admin,如何为自定义操作创建表单?

Mr.*_*r.D 3 ruby model-view-controller ruby-on-rails rails-admin

我已经通过Wiki上的此链接生成了自定义操作。我创建了从继承的类RailsAdmin::Config::Actions::Base

我已经为此操作创建了视图 rails_admin_my_action/app/views/rails_admin/main/my_action.html.erb

当我们为您的控制器创建表单时,我们通常会使用form_for将用于我的控制器的表单并执行特定操作,但是我认为rails_admin还有其他事情,因为rails_admin使用他自己的控制器,该控制器由生成RailsAdmin::Config::Actions::Base

如何为我的自定义rails_admin操作创建表单?

我问这个问题是因为没有关于此的适当文档。

我对自己的行为的看法是这样的:

<h3>Manage state of <%= @object.name %></h3>
Run Code Online (Sandbox Code Playgroud)
<div class="btn-group" data-toggle="buttons">

  <% @object.state_events.each do |event| %>
      <label class="btn bnt-lg btn-default">
        <%= form.radio_button :state, event, autocomplete: 'off' %> <%= event %>
      </label>

<% end %>


</div>

<br/>

<hr/>

<%= form.submit 'Change', class: 'btn btn-lg btn-primary'  %>
Run Code Online (Sandbox Code Playgroud)

lib/my_action.rb我刚才复制register_instance_option :controlleredit作用。

当我提交表格时。我ActiveModel::ForbiddenAttributesError出错了。

per*_*ine 5

这取决于您的操作,因此请看看如何实现模板。基本上form_tag my_action_path还是form_for @object, url: my_action_path(@abstract_model, @object.id)应该工作的。仅供参考,您可以在rails_admin配置中直接定义自定义操作

RailsAdmin.config do |config|
  config.actions do
    member :my_action do
      only ['MyModel']
      http_methods { [:post, :get] }

      controller do
        proc do
          if request.get?
          elsif request.post?
          end
        end
      end

    end
  end
end
Run Code Online (Sandbox Code Playgroud)