(편집 : 임시로 테이블에 배치하여이 문제를 일시적으로 해결했지만 각 줄의 스타일을 현명하게 처리하고 싶습니다. 테이블로 제한해야 함)새 줄에 가입하기 : 새 줄에 표시하기
각 문자열을보기 페이지에 새 줄에 표시하고 싶습니다. 나는 title
및 및 story_line
, line_index
및 story_id
에 대한 열을 가진 StoryLine
모델의 열을 가진 Story
모델을 가지고 있습니다. (제 질문은이 데이터 구조와 관련이 없습니다 - 저는 이것이 사용 사례에 적합한 것으로 확신합니다) . 이야기 텍스트는 새로운 라인에 분할 기간없이 많은 라인으로 구성되어 있기 때문에 텍스트가 입력됩니다 때 다음과 같이 내가 만드는 작업에 데이터베이스로 구문 분석 :
story_lines = params[:story_text].split("\n")
story_lines.each do |line|
@story_line = @story.story_lines.build
index = story_lines.index(line)
@story_line.line_index = index
@story_line.story_line = line
@story_line.save!
end
이야기가 열됩니다 때 사용자, 모든 story_lines
컨트롤러의 show 액션에 다음 코드를 통해 인덱스의 순서로 표시 얻을 : @story_lines = @story.story_lines.order(:line_index).pluck(:story_line).join("\r\n")
: <%= @story_lines %>
그러나 다른 많은 들어, 나는 이걸 주위에 변화 시키려고 노력했다. 내 컨트롤러와 뷰에서 새로운 행으로 표시하지 않습니다. 그것들을 성공적으로 올바른 순서로 합류 시키지만 각 문장은 다음 문장에 대해 위로 올라가며 한 문장의 마지막 단어와 다음 문장의 첫 단어 사이에 문자 그대로 공백이 생깁니다.
어떻게 생각합니까? 은이어야합니다. 나는 개개의 줄 바꿈을 테이블 행에 넣어서 할 수 있다는 것이 거의 긍정적이지만, 이것은 처리 할 수 있어야하는 값싼 해결 방안처럼 보입니다. <br />
글쎄, 그건 쉬운 일 이었어. 그래서 '\ n'은 html과 아무런 관련이 없다고 생각하니? – michaelsking1993
슬프게도 nah :) html 파일에서 멋진 캐리지 리턴을 추가합니다.하지만 이는 사용자가 소스 코드를 읽는 것입니다. 브라우저가 최종 사용자에게 제시 할 때 소스 코드를 읽을 때가 아닙니다. –