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
)