0

문자열을 .yml 파일의 두 줄 또는 세 줄로 분리해야합니다. 문제는 내가 오류가 트리거 두 줄의 마지막 필드 설명을 분할하려고하면, 따라서 나는 그것을이 오류가 트리거문자열을 파일의 두 줄로 분할하십시오.

one: 
    id: 1 
    bus_company_id: 2 
    seat_type_id: 1 
    description: Butacas 120º de inclinación, 
        calefacción y aire acondicionado, música funcional y video. 

two: 
    id: 2 
    bus_company_id: 2 
    seat_type_id: 2 
    description: Butacas de cuero y paño 120º de reclinación, bandeja de apoyo 
    para pies, calefacción y aire acondicionado, música funcional y video. 

three: 
    id: 3 
    bus_company_id: 2 
    seat_type_id: 4 
    description: Butacas extra ancho de cuero y paño 150º de reclinación, bandeja de apoyo para pies, 
    desayuno, almohada y frazada, sistema de DVD y MP3. 

four: 
    id: 4 
    bus_company_id: 2 
    seat_type_id: 5 
    description: Butacas de cuero 180º reclinación, bandeja de apoyo para pies de 180º de reclinación, cortina divisoria, almohada y frazadas sonido sourround, sistema de DVD y MP3, aire y calefacción, menú a elección de carne, pollo o verdura para su cena. 

한 라인을두고 있다는 점이다.

[email protected]:~/ProyectoTicketMaster/TicketMaster$ rake db:seed 
rake aborted! 
ActiveRecord::Fixture::FormatError: a YAML error occurred parsing /home/fernando/ProyectoTicketMaster/TicketMaster/test/fixtures/bus_seat_types.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Please have a look at http://www.yaml.org/faq.html 
The exact error was: 
    Psych::SyntaxError: (<unknown>): could not find expected ':' while scanning a simple key at line 27 column 3 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/fixtures/file.rb:43:in `rows' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/fixtures/file.rb:29:in `each' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/fixtures.rb:670:in `block (2 levels) in read_fixture_files' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/fixtures/file.rb:20:in `open' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/fixtures.rb:669:in `block in read_fixture_files' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/fixtures.rb:668:in `each' 
/home/fernando/.rvm/gems/ruby-1[email protected]_master/gems/activerecord-3.2.19/lib/active_record/fixtures.rb:668:in `read_fixture_files' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/fixtures.rb:548:in `initialize' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/fixtures.rb:482:in `new' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/fixtures.rb:482:in `block (2 levels) in create_fixtures' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/fixtures.rb:479:in `map' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/fixtures.rb:479:in `block in create_fixtures' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:232:in `disable_referential_integrity' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/fixtures.rb:476:in `create_fixtures' 
/home/fernando/ProyectoTicketMaster/TicketMaster/db/seeds.rb:15:in `<top (required)>' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activesupport-3.2.19/lib/active_support/dependencies.rb:245:in `load' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activesupport-3.2.19/lib/active_support/dependencies.rb:245:in `block in load' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activesupport-3.2.19/lib/active_support/dependencies.rb:236:in `load_dependency' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activesupport-3.2.19/lib/active_support/dependencies.rb:245:in `load' 
/home/fernando/.rvm/gems/[email protected]_master/gems/railties-3.2.19/lib/rails/engine.rb:525:in `load_seed' 
/home/fernando/.rvm/gems/[email protected]_master/gems/activerecord-3.2.19/lib/active_record/railties/databases.rake:347:in `block (2 levels) in <top (required)>' 
Tasks: TOP => db:seed 
(See full trace by running task with --trace) 
[email protected]:~/ProyectoTicketMaster/TicketMaster$ 

답변

1

here을 설명하는 줄 바꿈 서식을 사용하고 싶습니다. 두 가지 옵션이있는 것처럼 보입니다. 여기에 ">"표기법을 사용하여 간단한 예를 들어 보겠습니다. 여기

parse.rb 파일 : 당신이 ruby parse.rb으로 명령 줄을 통해이 작업을 실행하면

one_line: one line of text 
two_lines: 
> 
this is a couple lines of text 
here we go... 
final_line: final line of content 

, 당신은 다음과 같은 출력을 얻을 것이다 : 여기

require 'yaml' 
foo = YAML.load_file('foo.yaml') 
puts foo 

는 YAML 파일의 내용입니다 :

{"one_line"=>"one line of text", "two_lines"=>"this is a couple lines of text here we go...\n", "final_line"=>"final line of content"} 

바라건대 말이 되겠지. 그냥 ">"을 추가하고 텍스트를 다음 줄로 이동해야한다고 생각합니다.

+0

나는 새로운 것을 배웠다. 고마워요 oraserrata 많이 Logged –