Một số Rails console tricks
Bài đăng này đã không được cập nhật trong 5 năm
Sau đây mình sẽ viết ra một số lệnh hữu ích thường được sử dụng trong rails console. Trong đó sẽ có một số cái bạn đã từng biết và sử dụng thường xuyên, cũng có một số cái mà bạn chưa biết và không đề ý đến. Đặc biệt là những bạn mới bắt đầu tìm hiểu về rails.
- Có thể gọi View Helper trong rails console
pry(main)> helper.pluralize(3, 'person')
=> "3 people"
helper.truncate("Ruby on rails", length: 7)
=> "Ruby..."
- Cũng có thể sử dụng được
Tab
. Chỉ cần gõ vài chữ xong bạn ấn keyboardTab
, trong rails console sẽ autoComplete hoặc gợi ý cho bạn.
pry(main)> User.first.ema
User.first.emacs_editing_mode User.first.email_change User.first.email_regexp
User.first.emacs_editing_mode? User.first.email_change_to_be_saved User.first.email_regexp=
User.first.email User.first.email_changed? User.first.email_required?
User.first.email= User.first.email_field User.first.email_was
User.first.email? User.first.email_field_tag User.first.email_will_change!
User.first.email_before_last_save User.first.email_in_database User.first.emailbx
User.first.email_before_type_cast User.first.email_previous_change
User.first.email_came_from_user? User.first.email_previously_changed?
- Sử dụng
pp
để hiển thị kết quả đẹp hơn
pry(main)> user = User.first
User Load (0.5ms) SELECT `users`.* FROM `users` ORDER BY `users`.`id` ASC LIMIT 1
=> #<User id: 1, name: "Vito Harris", phone_number: "1", created_at: "2018-12-0714:15:47", updated_at: "2018-12-07 14:19:00">
pry(main) > pp user
#<User:0x000000051a8358
id: 1,
name: "Vito Harris",
phone_number: "1",
created_at: "2018-12-0714:15:47",
updated_at: "2018-12-07 14:19:00">
- Lấy giá trị cuối cùng được thực hiện trong rails console sử dụng dấu
_
pry(main)> User.limit(5).pluck(:name)
(0.3ms) SELECT `users`.`name` FROM `users` LIMIT 5
=> ["Vito Harris", "Gunner Auer", "Miss Jaylan Roberts", "Kieran Koss MD", "Geraldine Eichmann"]
pry(main)> names = _
=> ["Vito Harris", "Gunner Auer", "Miss Jaylan Roberts", "Kieran Koss MD", "Geraldine Eichmann"]
- Tìm kiếm method dùng
grep
. Vd: tìm tất cả các method của user có chứa từ "devise"
>> pry(main)> User.new.methods.grep(/devise/)
User Load (0.4ms) SELECT `users`.* FROM `users` ORDER BY `users`.`id` ASC LIMIT 1
=> [:devise_modules?, :devise_modules, :devise_mailer, :send_devise_notification]
- Tìm vị trí của một method. Có rất nhiều bạn gặp khó khăn khi tìm kiếm một method không định nghĩa rõ ràng. Vd: sử dụng metaprogramming
define_method
để khai báo một method. Cách này có thể giúp bạn tìm được vị trí của một method dễ hơn.
pry(main)> User.new.method(:email_required?).source_location
=> ["/Users/kim/project/test/app/models/user.rb", 34]
Bạn sẽ thấy vị trí method email_required?
nằm trong model user dòng 34.
- Nếu bạn muốn trả về luôn source code của một method thì có thể gọi
.source.display
pry(main)> User.new.method(:email_required?).source.display
def email_required?
false
end
=> nil
Tài liệu tham khảo
All rights reserved