Haml에서 textarea를 사용할 때의주의

2859 단어 haml루비Rails
Haml에서 textarea를 그대로 사용하면 편집과 표시에 불편이 있었기 때문에 메모.

사용한 버전



루비 2.3.1
Rails 5.0.0.1

샘플 프로젝트 준비



사푼풀 프로젝트 만들기


$ rails new sample

Haml을 사용하도록 Gem 추가



Gemfile에 다음을 추가하고 bundle install
gem 'haml-rails'
gem 'erb2haml'

text형의 필드를 가지는 페이지를 생성


tests 라는 테이블에 text_value 라는 text형의 열만을 정의해 생성
$ rails g scaffold test text_value:text

$ rake db:migrate

이것으로 준비 완료

텍스트 필드에 입력



우선은 생성한 상태로 복수행 입력한다
(생성한 채로 textarea가 작기 때문에 cols: "50", rows: "10" 를 설정하고 있다)


등록한 데이터를 편집 화면을 보면, 2, 3행째의 선두에 스페이스가 들어 버리고 있다

이것은 textarea에 설정된 값에 Haml f.text_area를 설명하는 행의 들여 쓰기가 포함되어 있기 때문입니다.
DB에 등록되었을 때는 스페이스는 들어 있지 않지만, 편집 화면에서 이것을 그대로 save하면 DB에도 스페이스가 등록되어 버린다

이를 방지하려면 다음 설정을 추가하십시오 (아래 파일이 없으므로 직접 작성)

config/initializers/haml.rb
Haml::Template.options[:ugly] = true

이제 편집 화면을 보면 무사히 선두의 여분의 공간이 없어진다.


텍스트 필드 표시



이어서, 이전의 text 필드에의 입력으로 등록한 데이터를 표시
표시 화면을 열면, text형의 필드는 이하와 같이 1행이 되어 표시되어 버린다


개행을 제대로 반영시키려면 다음과 같이 수정한다( simple_format(h(対象の値)) )

app/views/tests/show.html.haml
  %b Text value:
  = simple_format(h(@test.text_value))

이것으로 표시 화면을 보면, 제대로 개행된 상태로 표시된다


오시마

좋은 웹페이지 즐겨찾기