Rails đi kèm với một phương pháp gọi là underscore
mà sẽ cho phép bạn chuyển đổi chuỗi thành chuỗi CamelCased underscore_separated. Vì vậy, bạn có thể thực hiện việc này:
FooBar.name.underscore.to_sym
Nhưng bạn sẽ phải cài đặt ActiveSupport để thực hiện điều đó, như ipsum nói.
Nếu bạn không muốn cài đặt ActiveSupport chỉ cho điều đó, bạn có thể khỉ vá underscore
vào String
mình (chức năng gạch dưới được định nghĩa trong ActiveSupport::Inflector):
class String
def underscore
word = self.dup
word.gsub!(/::/, '/')
word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
word.tr!("-", "_")
word.downcase!
word
end
end
Cảm ơn. Tôi sợ rằng đây là phần mở rộng của Rails. :) Đừng lo, vì tôi thực sự đang sử dụng Rails. –
Sau đó, bạn nên gắn thẻ câu hỏi của mình cho phù hợp. Ở đây, hãy để tôi làm điều đó cho bạn ... – kikito
Không, không phải ActiveRecord. ActiveSupport. –