रेल 2 जनरेटर को रेल 3 में परिवर्तित करना कितना मुश्किल है? मैं उपयोगी प्लगइन्स ढूंढ रहा हूं लेकिन फिर यह पता लगा रहा हूं कि जेनरेटर केवल रेल के लिए हैं 2. मुझे एहसास है कि इसमें से कुछ सिर्फ एक सुविधा है, लेकिन अगर जेनरेटर को रेल 3 में माइग्रेट करना सामान्य है तो जेनरेटर कोड में कुछ लाइनों को ट्वीव करना उतना आसान होगा, मैं चाहता हूं बस ऐसा करने के लिए नीचे रहें (और भविष्य के उपयोगकर्ताओं के लिए भी जिथब को काम करें)।रेल 2 जनरेटर रेल में कनवर्ट करना 3?
यहाँ ऐसे ही एक जनरेटर मैं का उपयोग कर के बारे में सोच रहा है, उदाहरण के लिए (feedback से)
require File.expand_path(File.dirname(__FILE__) + "/lib/insert_routes.rb")
class FeedbackFormGenerator < Rails::Generator::Base
attr_accessor :name,
:model_class_name,
:controller_class_name,
:helper_class_name,
:mailer_class_name
def initialize(runtime_args, runtime_options = {})
super
@name = (runtime_args[0] || "feedback").downcase
@model_class_name = name.classify
@mailer_class_name = "#{@model_class_name}Mailer"
@controller_class_name = "#{@model_class_name.pluralize}Controller"
@helper_class_name = "#{@model_class_name.pluralize}Helper"
#@js_framework = (runtime_options[''])
end
def manifest
record do |m|
puts "hello"
add_model(m)
add_mailer(m)
add_controller(m)
add_helper(m)
add_views(m)
add_routes(m)
add_unit_test(m)
add_functional_test(m)
add_stylesheet(m)
add_javascript(m)
add_images(m)
end
end
def add_stylesheet(m)
m.directory 'public/stylesheets'
m.file 'feedback.css', 'public/stylesheets/feedback.css'
end
def add_javascript(m)
m.directory 'public/javascripts'
file_name = options[:jquery] ? 'jquery.feedback.js' : 'prototype.feedback.js'
m.file file_name, "public/javascripts/#{file_name}"
end
def add_images(m)
m.directory 'public/images/feedback'
m.file "images/feedback_tab.png", "public/images/feedback/feedback_tab.png"
m.file "images/feedback_tab_h.png", "public/images/feedback/feedback_tab_h.png"
m.file "images/closelabel.gif", "public/images/feedback/closelabel.gif"
m.file "images/loading.gif", "public/images/feedback/loading.gif"
end
def add_model(m)
m.template 'feedback_model.rb.erb', "app/models/#{name}.rb"
end
def add_mailer(m)
m.template 'feedback_mailer.rb.erb', "app/models/#{name}_mailer.rb"
m.directory "app/views/#{name}_mailer"
m.file 'views/feedback_mailer/feedback.html.erb', "app/views/#{name}_mailer/feedback.html.erb"
end
def add_controller(m)
m.template 'feedbacks_controller.rb.erb', "app/controllers/#{name.pluralize}_controller.rb"
end
def add_helper(m)
template_name = options[:jquery] ? 'feedbacks_helper.rb.jquery.erb' : 'feedbacks_helper.rb.prototype.erb'
m.template template_name, "app/helpers/#{name.pluralize}_helper.rb"
end
def add_views(m)
m.directory "app/views/#{name.pluralize}"
m.file 'views/feedbacks/new.html.erb', "app/views/#{name.pluralize}/new.html.erb"
end
def add_routes(m)
m.route_name "new_feedback", "feedbacks/new", {:controller => name.pluralize, :action => "new"}
m.route_name "feedback", "feedbacks", {:controller => name.pluralize, :action => "create"}
end
def add_unit_test(m)
m.template 'feedback_test.rb.erb', "test/unit/#{name}_test.rb"
m.template 'feedback_mailer_test.rb.erb', "test/unit/#{name}_mailer_test.rb"
end
def add_functional_test(m)
m.template 'feedbacks_controller_test.rb.erb', "test/functional/#{name.pluralize}_controller_test.rb"
end
protected
def add_options!(opt)
opt.separator ''
opt.separator 'Options:'
opt.on("--jquery",
"Use jquery Javascript framework, default is Prototyp") { |v| options[:jquery] = true }
end
end
मेरे पास एक ही प्रश्न है। मैं जादूगर का उपयोग करना चाहता हूं, लेकिन मूल स्रोत केवल रेल 2 अनुरूप है। तब मैंने किसी ऐसे व्यक्ति को पाया जिसने रेल 3 शाखा बनाई है (https://github.com/jfelchner/wizardly), लेकिन जनरेटर अभी भी रेल 2 कोड में है। –
वे काफी अलग हैं ... प्रतिक्रिया के लिए रेल-3 कांटा मौजूद है, वैसे: https://github.com/alkesh/feedback – Roman