ruby-on-rails - Rails_admin,如何为自定义操作创建表单?

标签 ruby-on-rails ruby model-view-controller rails-admin

我已经生成了自定义操作 by this link on wiki .我创建了继承自 RailsAdmin::Config::Actions::Base 的类。

我已经在 rails_admin_my_action/app/views/rails_admin/main/my_action.html.erb 中为这个 Action 创建了 View

当我们为您的 Controller 创建表单时,我们主要使用 form_for 它将转到我的 Controller 并执行特定操作,但我认为在 rails_admin 中还有其他东西,因为rails_admin 使用他自己的 Controller ,这些 Controller 是从 RailsAdmin::Config::Actions::Base 生成的。

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

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

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

<h3>Manage state of <%= @object.name %></h3>
<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'  %>

lib/my_action.rb 中,我只是复制了 register_instance_option :controlleredit 操作。

当我提交表单时。我收到 ActiveModel::ForbiddenAttributesError 错误。

最佳答案

这取决于你的行动,所以take a look模板是如何实现的。基本上 form_tag my_action_pathform_for @object, url: my_action_path(@abstract_model, @object.id) 应该可以工作。仅供引用,您可以 define custom action就在 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

关于ruby-on-rails - Rails_admin,如何为自定义操作创建表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32243844/

相关文章:

ruby - 如何在 Ruby 中按一定数量的字符拆分字符串

c# - 仅当使用 MVC 选中复选框时才验证文本框

model-view-controller - Ember.js:如何将 View 与 Controller 分离?

ios - 关闭 2 个 ViewController

ruby-on-rails - rails - 导出一个巨大的 CSV 文件会消耗生产中的所有 RAM

mysql - 在关联Rails中的多个记录中选择特定记录

ruby - 无法在 MacOS 10.14.2 Mojave : Error running '__rvm_make -j4' 上使用 RVM 安装任何 Ruby

ruby-on-rails - 如何从 scaffold_controller 模板中删除 respond_to block

ruby-on-rails - 安装mysql2(0.3.16)时出错,Bundler无法继续

ruby-on-rails - 如何在 Rails 中声明动态路由作用域/命名空间变量?