Cách chuyển đổi chuỗi thành User
?Làm thế nào để chuyển đổi một chuỗi thành một hằng số trong Ruby?
Trả lời
Bạn có thể sử dụng phương thức Module#const_get
. Ví dụ:
irb(main):001:0> ARGV
=> []
irb(main):002:0> Kernel.const_get "ARGV"
=> []
Nếu bạn có ActiveSupport nạp (ví dụ trong Rails), bạn có thể sử dụng
"User".constantize
Cách khuyến cáo là sử dụng constantize ActiveSupport của:
'User'.constantize
Bạn cũng có thể sử dụng hạt nhân của const_get
, nhưng trong Ruby < 2.0, nó không hỗ trợ hằng số không gian tên, vì vậy một cái gì đó như thế này:
Kernel.const_get('Foobar::User')
sẽ không thành công trong Ruby < 2.0. Vì vậy, nếu bạn muốn có một giải pháp chung chung, bạn muốn được khôn ngoan để sử dụng cách tiếp cận ActiveSupport:
def my_constantize(class_name)
unless /\A(?:::)?([A-Z]\w*(?:::[A-Z]\w*)*)\z/ =~ class_name
raise NameError, "#{class_name.inspect} is not a valid constant name!"
end
Object.module_eval("::#{$1}", __FILE__, __LINE__)
end
const_get cũng hoạt động cho các hằng số được đặt tên từ ruby 2.0 – untidyhair
Vì Ruby 2.0 đã đạt đến EOL, không còn cần phải kéo ActiveSupport làm phụ thuộc để tham chiếu một hằng số bằng một chuỗi. :-) – Drenmi
Xem thêm ''User'.safe_constantize' –
Object.const_get("User")
Không cần phải yêu cầu ActiveSupport.
+1 bệnh về các câu hỏi ruby chung gây ô nhiễm. –
Sử dụng ruby magic method: eval()
:
eval("User") #=> User
Đây có lẽ là một quá mức cần thiết, vì 'eval' không có nghĩa là được sử dụng như thế này, và cần tránh hoàn toàn các lựa chọn thay thế cụ thể hơn. – yagooar
- 1. Làm thế nào để chuyển đổi một chuỗi hoặc số nguyên thành nhị phân trong Ruby?
- 2. Làm thế nào để chuyển đổi một chuỗi các số thành một dãy số?
- 3. Trong kịch bản shell bash làm thế nào để chuyển đổi một chuỗi thành một số
- 4. Làm thế nào để chuyển đổi một số nguyên ruby thành một biểu tượng
- 5. Làm thế nào để chuyển đổi một số nguyên thành một chuỗi một cách dễ dàng?
- 6. Làm thế nào để chuyển đổi chuỗi số thành số nguyên trong một danh sách?
- 7. Làm thế nào để chuyển đổi một chuỗi thành CharSequence?
- 8. Ruby - Chuyển đổi số nguyên thành chuỗi
- 9. Matlab, làm thế nào để chuyển đổi một chuỗi các số nguyên thành một vectơ?
- 10. Bash: Làm thế nào để chuyển đổi một số thành một chuỗi tháng?
- 11. Chuyển đổi một chuỗi để một hằng số được định nghĩa trong PHP
- 12. Làm thế nào để chuyển đổi một chuỗi số clojure thành các số nguyên riêng biệt?
- 13. Làm thế nào để chuyển đổi một chuỗi số 18 chữ số thành BigInteger?
- 14. Làm thế nào để chuyển đổi một chuỗi đại diện của một số thành một số trong coldfusion?
- 15. làm thế nào để chuyển đổi một phân số để nổi trong ruby
- 16. Làm thế nào để chuyển đổi một chuỗi thành một băm trong ruby / rails mà không cần sử dụng eval?
- 17. Làm thế nào để chuyển đổi một chuỗi thành một hàm trong Clojure?
- 18. Làm thế nào để chuyển đổi một số ("") thành Không có trong một dòng?
- 19. Làm thế nào để chuyển đổi một giá trị số nguyên thành chuỗi?
- 20. Postscript: làm thế nào để chuyển đổi một số nguyên thành chuỗi?
- 21. Làm thế nào để chuyển đổi chuỗi này thành một mảng các số nguyên?
- 22. Làm thế nào để chuyển đổi một chuỗi thành một byte [] trong Clojure?
- 23. Làm thế nào để chuyển đổi một chuỗi trích dẫn thành một bình thường trong Makefile?
- 24. Làm thế nào để chuyển đổi một int thành một chuỗi không đệm trong T-SQL?
- 25. Làm thế nào để chuyển đổi một mảng các chuỗi thành một mảng float trong numpy?
- 26. Làm thế nào để chuyển đổi một chuỗi thành một bản đồ trong javascript?
- 27. Làm thế nào tôi có thể chuyển đổi một chuỗi thành số nguyên trong lisp chung?
- 28. Làm thế nào tôi có thể chuyển đổi một chuỗi lớn thành số nguyên trong java?
- 29. Chuyển đổi một số nguyên thành chuỗi thập lục phân trong Ruby
- 30. Làm thế nào tôi có thể chuyển đổi một đối tượng IO thành một chuỗi trong Ruby?
Bạn đang cố gắng để gọi một hàm biến? – harbichidian
Tôi cũng muốn có câu trả lời cho câu hỏi này; Tuy nhiên, bạn đang cố gắng tạo ra một hằng số mới dựa trên một chuỗi, hoặc tìm một hằng số đã được khởi tạo? Ngoài ra, bạn đang tìm kiếm ruby vani hay Rails? – onebree