2016-03-03 26 views
1

我正在使用rails_admin並且還爲我的某個功能使用了自定義操作。
我的要求是使用機械化寶石從一些其他網站獲取數據,我可以完成這部分。
現在我需要將我提供的一個模型的新動作提取的數據發送出去,以便數據可以用新形式預填充,並且我可以直接提交以保存到數據庫。
任何幫助將不勝感激。
在此先感謝。rails_admin爲新窗體定製視圖

,我周圍的工作到現在是東西:

的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動作)。
我通過在控制檯上打印它進行檢查。

現在我想要以新形式的電影控制器填充此數據,或者我需要爲此表單數據創建一個更多操作。 它是如何做到的。 請幫忙。

+0

哪個變量存儲提取的數據?以及顯示該變量的頁面顯示? – chaitanya

+0

我也用編碼編輯了我的問題。 我提取的數據是頁面變量。 –

回答

0

添加POST和GET行動要求,這樣的形式可以提交添加一行

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

,並重新啓動軌看到效果! 您可以直接從Rail中的Proc.new功能調用Mechanize類。