Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 格式化种子文件_Ruby On Rails_Ruby_Seed - Fatal编程技术网

Ruby on rails 格式化种子文件

Ruby on rails 格式化种子文件,ruby-on-rails,ruby,seed,Ruby On Rails,Ruby,Seed,我正在修改一个已经存在的站点的种子文件 我要更改的表中的一个字段是文本区域 我想格式化我在种子文件中输入的信息,这样我就不必返回并在网站上手动更改它 当前种子文件中的一个条目如下所示 if !Store.exists?(:title => 'store Cavan') Store.create( opening_hours: 'Mon. to Fri. 8:30 - 9:00PM Saturday 8:30 - 7:0

我正在修改一个已经存在的站点的种子文件

我要更改的表中的一个字段是文本区域

我想格式化我在种子文件中输入的信息,这样我就不必返回并在网站上手动更改它

当前种子文件中的一个条目如下所示

if !Store.exists?(:title => 'store Cavan')
Store.create(
    opening_hours: 'Mon. to Fri.     8:30 - 9:00PM
                    Saturday         8:30 - 7:00 PM
                    Sunday         11:00 - 7:00 PM',
    latitude: 53,
    longitude: -7,
    title: 'test store Cavan',
    street_line_one: 'test Retail Park',
    street_line_two: 'test Road',
    town: 'Cavan',
    county: 'Cavan',
    country: 'Ireland')
当我运行rakedb:seed时,它会出现在这样一个信息框中

Mon. to Fri.     8:30 - 9:00PMSaturday         8:30 - 7:00 PMSunday         11:00 - 7:00 PM
而不是这个

Mon. to Fri.     8:30 - 9:00PM
Saturday         8:30 - 7:00 PM
Sunday         11:00 - 7:00 PM
我尝试在那里添加“\n”和“\n”,但这破坏了我的网站。我知道这只是一个小问题,但我想知道如何在运行种子时保持某种格式,在这种情况下,每次都会显示一行新行


非常感谢您的帮助。

\n
肯定会有用的。我不确定您是如何使用
\n
的,而且它不适合您。 通过包含
\n
更改您的
create
方法调用,如下所示:

Store.create(
    opening_hours: 'Mon. to Fri.     8:30 - 9:00PM\nSaturday         8:30 - 7:00 PM\nSunday         11:00 - 7:00 PM',
    latitude: 53,
    longitude: -7,
    title: 'test store Cavan',
    street_line_one: 'test Retail Park',
    street_line_two: 'test Road',
    town: 'Cavan',
    county: 'Cavan',
    country: 'Ireland')
更新


根据聊天会话。OP选择将整个html代码添加到种子文件中,以获得正确的格式。

我将使用herdoc执行此操作:

opening_hours = <<-END.gsub(/^\s*/, '')
  Mon. to Fri.     8:30 - 9:00 PM
  Saturday         8:30 - 7:00 PM
  Sunday          11:00 - 7:00 PM
END
=> "Mon. to Fri.     8:30 - 9:00 PM\nSaturday         8:30 - 7:00 PM\nSunday          11:00 - 7:00 PM\n"
strip\u herdoc
带有ActiveSupport,在这里产生与
gsub
相同的结果

herdeoc必须是最后一个指定的属性,因为据我所知,不能在同一行上有结束符
END
和逗号


herdeocs是在源代码中嵌入格式化数据的一种非常好的方法,Ruby对它的支持尤其强大。谷歌吧

改用
!Store.exists?
否,我想先擦除所有数据使用
\n
但请确保在数据周围使用双引号,而不是单引号。我已经完成了这项工作,但仍然无法工作。只是在文本中\n出现了什么错误?我只是在我的应用程序上试用了一下,效果很好。如果您想在聊天中讨论此问题,请加入我,谢谢,因为显示区域是html安全的,所以初始种子数据可以直接作为html插入。因此我不完全了解,在本例中,您是否在种子文件中创建一个方法,然后在每个开放时间调用它:?否,为了简单起见,我只是给一个可变的开放时间赋值。我会用你的案例来更新答案。遗传是一个品味的问题,但就我个人而言,我不喜欢带有空格的超大字符串。我更喜欢在源文件中格式化格式化文本。
Store.create(
  latitude: 53,
  longitude: -7,
  title: 'test store Cavan',
  street_line_one: 'test Retail Park',
  street_line_two: 'test Road',
  town: 'Cavan',
  county: 'Cavan',
  country: 'Ireland',
  opening_hours: <<-END.strip_heredoc
    Mon. to Fri.     8:30 - 9:00 PM
    Saturday         8:30 - 7:00 PM
    Sunday          11:00 - 7:00 PM
  END
)