- vừa được xem lúc

Cách export routes sang CSV sử dụng rake

0 0 15

Người đăng: caibap

Theo Viblo Asia

Introduction

Khi thực hiện upgrade dự án Ruby on Rails, mình phải list các route, URI để khi có sự thay đổi ảnh hưởng đến source code, team dev có thể note lại các route ảnh hưởng đó cho QA và từ route đó QA có thể check ảnh hưởng đó thuộc màn nào. Ban đầu mình sử dụng lệnh rails routes có sẵn của Rails, tuy nhiên nhưng nó xuất các route trên shell. Sau đó mình phải thực hiện copy, update, format vào spreadsheet. Bài toán đặt ra là có cách nào tiện lợi hơn không và mình tìm thấy cách này, mình note lại đây hy vọng có thể giúp cho bạn tiết kiệm thời gian. Bạn có cách nào cùng chia sẻ với mình nha 💘

Steps

1. Create a new rails app

rails new export_routes_to_csv_demo

2. Create a rake file

Create task:

bundle exec rails g task routes_csv csv
# routes_csv.rake
namespace :routes do desc 'Print out all defined routes in CSV format.' task :csv => :environment do class CSVFormatter def initialize @buffer = [] end def result @buffer.join("\n") end def section_title(title) @buffer << "\n#{title}:" end def section(routes) routes.map do |r| @buffer << "#{r[:name]},#{r[:verb]},#{r[:path]},#{r[:reqs]}" # @buffer << "#{r[:verb]} #{r[:path]}" end end def header(routes) @buffer << 'Prefix,Verb,URI Pattern,Controller#Action' end def no_routes @buffer << <<-MESSAGE.strip_heredoc You don't have any routes defined! Please add some routes in config/routes.rb. For more information about routes, see the Rails guide: http://guides.rubyonrails.org/routing.html. MESSAGE end end all_routes = Rails.application.routes.routes require 'action_dispatch/routing/inspector' inspector = ActionDispatch::Routing::RoutesInspector.new(all_routes) # puts inspector.format(ActionDispatch::Routing::ConsoleFormatter.new, ENV['CONTROLLER']) # puts inspector.format(CSVFormatter.new, ENV['CONTROLLER'])  puts inspector.format(CSVFormatter.new) end
end

3. Run command

# show output in console
bundle exec rake routes_csv:csv # export output in file.csv
# ubuntu
bundle exec rake routes_csv:csv | tr " " "," > file.csv
# mac
bin/rails routes_csv:csv | pbcopy
pbpaste > file.csv

Ref: https://linuxtut.com/output-rails-routes-as-csv-defdf/

Bình luận

Bài viết tương tự

- vừa được xem lúc

Docker: Chưa biết gì đến biết dùng (Phần 3: Docker-compose)

1. Mở đầu. . .

0 0 121

- vừa được xem lúc

Tích hợp VNPAY vào Rails

Xin chào 500 ae năm mới nhé. Tiếp nối câu chuyện về Thanh toán online mà mình có chia sẽ ở 2 bài trước, mọi người chưa đọc thì có thể vào xem ở đây nhé.

1 1 95

- vừa được xem lúc

Tìm hiểu Adapter Pattern trong Rails

. Nếu là một web developer chắc hẳn chúng ta đã không ít lần đọc qua về các Design patterns hay cách áp dụng chúng để làm cho code trở nên hướng đối tượng hơn, dễ đọc, dễ hiểu, dễ maintain, dễ mở rộng, … Các design patterns được áp dụng khá nhiều trong các Rails projects như Service Object, Decorato

0 0 48

- vừa được xem lúc

Sử dụng Searchkick để tìm kiếm thông minh trên Rails và Elasticsearch

Bạn đã bao giờ tự hỏi, ứng dụng web của mình có thể mở rộng quy mô bằng cách học được các từ khóa mà người dùng tìm kiếm? Có giải pháp nào cung cấp công cụ tìm kiếm tự động nhanh chóng với chỉ 1 từ khóa bất kì? Thật may khi có Searchkick và Elasticsearch là các công cụ hỗ trợ công việc tìm kiếm trở

0 0 103

- vừa được xem lúc

Những sai lầm bạn có thể mắc phải khi code Rails

. Chào các bạn, chào các bạn. Đừng vội đóng tab nha.

0 0 47

- vừa được xem lúc

Một số lưu ý cải thiện performance khi làm việc với Rails

Khi làm việc với ruby on rails chắc hẳn chúng ta sẽ làm việc với active record rất nhiều. Tuy nhiên có nhiều điều có thể ta vẫn chưa thực sự hiểu, ví dụ như ActiveRecord execute SQL query như thế nào? Và cũng còn khá nhiều lập trình viên khác cũng không để ý tới điều này.

0 0 111