2012-10-22 3 views
0

(개발자의 콘텐트가 아닌) 텍스트 파일을 갖고 싶고 코드가 해당 파일의 항목을 선택하여 웹 앱에 표시하도록하고 싶습니다. 예를 들어,이 텍스트 파일은 사람들의 목록이거나, 화면에 계속 표시되거나 순서가 정해지는 유명한 따옴표 일 수 있습니다.레일에서 텍스트 파일 변경하기

제 질문은 이것을 구현하는 가장 쉬운 방법은 무엇입니까? XML로 입력하고 구문 분석해야합니까? YAML에 넣으시겠습니까? 파싱은 어디서합니까? 컨트롤러 또는 이니셜 라이저에서?

+0

런타임 중에 파일을 변경 하시겠습니까? – iltempo

+0

런타임이 문제라는 것을 알고 있으며, 가장 빠른 방법을 찾고 있으며 파일을 편집하는 사람도 기술적이지 않습니다. –

답변

1

기술 분야가 아닌 사람들에게 평범한 텍스트 파일을 능가하는 것은 없습니다. 몇 가지 간단한 구조를 강제로, 예를 들어, 당신이 인식 토큰들과 함께 시작 항목 당

  • 한 줄, 또는 항목 간
  • 빈 줄, 또는
  • 제목 (예 ==)

평문 파일을 읽는 예제 :

data = File.read('/path/to/file.txt') 
data.lines.each do |line| 
    puts "Read line: #{line}" 
end 

# or split by an empty line (btw, non-technical users can insert spaces in blank lines) 
# also, remove leading and trailing whitespace from entries (i.e the newlines) 
entries = data.split(/^\s*$/).map(&:strip) 

또 다른 옵션은 일부 markdown을 사용하고 구문 분석 된 텍스트를 사용하는 것입니다 귀하의 프로젝트에 새로운 보석을 소개합니다 (예 : RedCarpet).

+0

행당 텍스트 파일을 구문 분석하려면 어떻게해야합니까? –

1

콘텐츠가 변경 될 때 앱을 다시 배포 할 수 있다면 YAML 파일에 넣으십시오. YAML은 Rails 코드의 여러 위치에서 이미 사용된다. 보석을 추가 할 필요가 없습니다. JSON을 사용할 수도 있습니다. 당신이 읽을 수있는 것을 찾는다.

재배포하지 않고 내용을 변경하려면 데이터를 데이터 저장소에 저장하고 변경하기위한 양식을 작성하십시오.

+0

내 코드에서 yaml을 사용하는 방법 (링크로 충분 함) –

+1

'data = YAML.load (File.read ('filename.yml'))'충분하다 – Laas

+0

어디에 yaml 파일을 두어야하나요? 그것은 설정이 아니야 .. 나는 또한 직접 액세스 할 수 있기를 원하지 않는다. –