문자열을 루비로 기호 가능으로 변환
기호는 일반적으로 다음과 같이 표시됩니다.
:book_author_title
하지만 내게 끈이 있다면,
"Book Author Title"
레일/루비에 내가 사용할 수 있는 기호로 변환할 수 있는 내장된 방식이 있습니까?:
원시 문자열 regex replace를 수행하지 않고 표기법을 사용하시겠습니까?
레일즈 겟ActiveSupport::CoreExtensions::String::Inflections
이러한 메소드를 제공하는 모듈.그것들은 모두 볼 가치가 있습니다.예를 들어,
'Book Author Title'.parameterize.underscore.to_sym # :book_author_title
출처: http://ruby-doc.org/core/classes/String.html#M000809
str.intern => symbol
str.to_sym => symbol
다음에 해당하는 기호를 반환합니다.str
기호가 이전에 없는 경우 기호를 만듭니다.봐Symbol#id2name
.
"Koala".intern #=> :Koala
s = 'cat'.to_sym #=> :cat
s == :cat #=> true
s = '@cat'.to_sym #=> :@cat
s == :@cat #=> true
이것은 또한 다음을 사용하여 표현할 수 없는 기호를 만드는 데 사용될 수 있습니다.:xxx
표기법
'cat and dog'.to_sym #=> :"cat and dog"
하지만 당신의 예를 들자면...
"Book Author Title".gsub(/\s+/, "_").downcase.to_sym
가셔야 합니다 ;)
"Book Author Title".parameterize('_').to_sym
=> :book_author_title
http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#method-i-parameterize
매개 변수화는 레일 방법이며, 이 방법을 사용하여 구분 기호를 선택할 수 있습니다.기본적으로 대시 "-"입니다.
intern → symbol str에 해당하는 symbol을 반환합니다. 이전에 존재하지 않는 경우 symbol을 만듭니다.
"edition".intern # :edition
http://ruby-doc.org/core-2.1.0/String.html#method-i-intern
레일에서 이 작업은 다음을 사용하여 수행할 수 있습니다.underscore
방법:
"Book Author Title".delete(' ').underscore.to_sym
=> :book_author_title
더 간단한 코드는 정규식(Ruby와 함께 작동)을 사용하는 것입니다.
"Book Author Title".downcase.gsub(/\s+/, "_").to_sym
=> :book_author_title
이것이 당신이 찾고 있는 것입니까?:
:"Book Author Title"
:)
이것은 질문 자체에 대한 답은 아니지만, 저는 문자열을 기호로 변환하고 해시에 사용하는 솔루션을 검색하는 이 질문을 발견했습니다.
hsh = Hash.new
str_to_symbol = "Book Author Title".downcase.gsub(/\s+/, "_").to_sym
hsh[str_to_symbol] = 10
p hsh
# => {book_author_title: 10}
나 같은 사람에게 도움이 되길 바랍니다!
언급URL : https://stackoverflow.com/questions/2004491/convert-string-to-symbol-able-in-ruby
'programing' 카테고리의 다른 글
빈 값을 nan 대신 빈 문자열로 읽으려면 pandas.read_csv를 가져옵니다. (0) | 2023.06.08 |
---|---|
기호당 분당 데이터 차이 쿼리 (0) | 2023.06.08 |
새 서버의 테스트 코드 java.time.localdatetime을 날짜로 변환할 수 없습니다.생산 과정에서 발생하지 않습니다. (0) | 2023.06.08 |
OWIN Startup.cs 클래스를 사용하고 모든 구성을 해당 클래스로 이동하는 경우 Global.asax.cs 파일이 필요합니까? (0) | 2023.06.08 |
사전에 하나의 키에 여러 값 추가 (0) | 2023.06.08 |