rails_admin自定义新表单的视图

时间:2016-03-03 13:09:58

标签: ruby-on-rails rails-admin

我正在使用 rails_admin ,并且还为我的某项功能使用了自定义操作。
我的要求是使用mechanize gem从其他网站获取数据,我能够做到这一点 现在我需要在我的一个模型的新动作上发送所获取的数据,以便可以以新的形式预填充数据,我可以直接提交以保存到数据库。
任何帮助将受到高度赞赏。
提前谢谢。

我到目前为止工作的东西是:

LIB / rails_admin / mydata.rb

require 'rails_admin/config/actions'
require 'rails_admin/config/actions/base'

module Mydata
end

module RailsAdmin
  module Config
    module Actions
      class Mydata < RailsAdmin::Config::Actions::Base
        RailsAdmin::Config::Actions.register(self)

        register_instance_option :visible? do
          authorized?
        end

        register_instance_option :collection do
          true
        end

        register_instance_option :link_icon do
          'icon-plus'
        end

        register_instance_option :pjax? do
          false
        end

        register_instance_option :controller do
          Proc.new do 
        end
      end
     end
    end
  end
end

/app/views/rails_admin/main/mydata.html.erb

<%= form_tag("/movies/mydata") do %>
  <%= text_field_tag 'movie[url]', nil, placeholder: 'Enter URL...' %>
  <%= submit_tag 'Fetch' %>
<% end %>

/app/controllers/movies_controller.rb

class MoviesController < ApplicationController

  def mydata  
    m = Mechanize.new
    page = m.get(url_params[:url])
    puts page
    redirect_to "/admin/movie/new"
  end

  private

    def url_params
      params.require(:movie).permit(:url)
    end

end

/config/initializers/rails_admin.rb

require Rails.root.join('lib', 'rails_admin', 'mydata.rb')
RailsAdmin::Config::Actions.register(RailsAdmin::Config::Actions::Mydata)

RailsAdmin.config do |config|
  config.actions do
    mydata
  end        
end

所以,这就是我现在所做的 我提取的数据位于页面变量中(movies_controller.rb的mydata操作)。
我通过在控制台上打印来检查它。

现在我希望这些数据以新形式的电影控制器填充,或者我需要再创建一个动作来填充此表单数据。 如何做到这一点。 请帮忙。

1 个答案:

答案 0 :(得分:0)

添加POST和GET请求,以便可以提交表单,添加类似

的行
register_instance_option :http_methods do
      [:get, :post]
end

并重启rails以查看效果!! 您可以直接从rails。中的Proc.new功能调用Mechanize类。