当我在Rails中运行rake db:seed时US-ASCII(参数错误)中的无效字节序列

当我在Rails应用程序中运行rake db:seed时,出现以下错误:

US-ASCII中的无效字节序列(参数错误)

我只是将science_majors添加到我的种子文件中,现在当我运行rake db:seed它给了我这个错误:

无效的字节序列错误

这是为什么,我该如何解决?

种子的一部分

 @college = College.find_or_create_by_name!('University of Pittsburgh') if @college.update_attributes( url: 'university-of-pittsburgh', public: 'Public', years: '4-year', category: 'National University', calendar: 'Semester', location: 'Pittsburgh, PA', setting: 'Large City (250-500k)', retention: '90', majors: 'business/marketing: 15%|social sciences: 14%|health professions: 11%|english: 10%|engineering: 9%|psychology: 8%|biology: 7%|history: 5%', scholarships_link: 'http://www.oafa.pitt.edu/universityschlrs.aspx', map: '<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=university+of+pittsburgh&amp;aq=&amp;sll=40.444261,-79.970448&amp;sspn=0.142165,0.251656&amp;ie=UTF8&amp;hq=university+of+pittsburgh&amp;t=m&amp;ll=40.443486,-79.958245&amp;spn=0.010798,0.021038&amp;output=embed"></iframe><br /><small><a href="https://maps.google.com/maps?f=q&amp;source=embed&amp;hl=en&amp;geocode=&amp;q=university+of+pittsburgh&amp;aq=&amp;sll=40.431368,-79.9805&amp;sspn=0.142165,0.251656&amp;ie=UTF8&amp;hq=university+of+pittsburgh&amp;t=m&amp;ll=40.443486,-79.958245&amp;spn=0.010798,0.021038" style="color:#0000FF;text-align:left">View Larger Map</a></small>', street_view: '<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=q&amp;source=embed&amp;hl=en&amp;geocode=&amp;q=University+of+Pittsburgh,+4200+Fifth+Ave,+Pittsburgh,+PA&amp;aq=0&amp;oq=uni&amp;sll=40.444261,-79.970448&amp;sspn=0.142165,0.251656&amp;ie=UTF8&amp;hq=University+of+Pittsburgh,+4200+Fifth+Ave,+Pittsburgh,+PA&amp;ll=40.443486,-79.958245&amp;spn=0.010798,0.021038&amp;t=m&amp;layer=c&amp;cbll=40.441775,-79.956671&amp;panoid=BgWQKMiSI1fpwP7JUF16Vg&amp;cbp=12,45.25,,0,-3.34&amp;output=svembed"></iframe><br /><small><a href="https://maps.google.com/maps?f=q&amp;source=embed&amp;hl=en&amp;geocode=&amp;q=University+of+Pittsburgh,+4200+Fifth+Ave,+Pittsburgh,+PA&amp;aq=0&amp;oq=uni&amp;sll=40.431368,-79.9805&amp;sspn=0.142165,0.251656&amp;ie=UTF8&amp;hq=University+of+Pittsburgh,+4200+Fifth+Ave,+Pittsburgh,+PA&amp;ll=40.443486,-79.958245&amp;spn=0.010798,0.021038&amp;t=m&amp;layer=c&amp;cbll=40.441775,-79.956671&amp;panoid=BgWQKMiSI1fpwP7JUF16Vg&amp;cbp=12,45.25,,0,-3.34" style="color:#0000FF;text-align:left">View Larger Map</a></small>', housing: '<iframe src="http://www.tour.pitt.edu/tour-categories/residence-halls" scrolling="no" height="820" width="900"></iframe>', food: '<div style="overflow: hidden; max-width: 1000px;"><iframe scrolling="no" src="http://www.pc.pitt.edu/dining/menus.php" style="margin-left: 0; height: 2000px; margin-top: -370px; margin-bottom: -375px; width: 750px;"></iframe></div>', weather: '<div style="overflow: hidden; max-width: 500px;"><iframe scrolling="no" src="http://www.weather.com/weather/wxclimatology/monthly/graph/USPA1290" style="margin-left: -40px; height: 1570px; margin-top: -490px; width: 500px;"></iframe></div>', dorms: 'Towers (fr.)|Sutherland (fr.)|Lothrop (fr.)|Nordenberg (fr.)|Holland (fr.)|Forbes (fr.; honors)|McCormick|Brackenridge|Amos|Bruce|Panther|Pennsylvania|Ruskin|Bouquet Gardens|Oakwood Apartments|Centre-Plaza Apartments|Forbes-Craig Apartments (honors)', science_majors: 'Actuarial Mathematics|Applied Mathematics|Bioinformatics|Biological Sciences|Chemistry*|Computer Science|Ecology and Evolution|Environmental Geology|Environmental Studies|Geology|History and Philosophy of Science|Linguistics*|Mathematics*|Mathematics-Economics|Mathematics-Philosophy|Microbiology|Molecular Biology|Natural Sciences Area|Neuroscience*|Physics*|Physics and Astronomy|Scientific Computing|Statistics', social_science_majors: 'Economics*|Economics–Statistics|History*|Political Science*|Politics-Philosophy|Psychology|Sociology*|Urban Studies', humanities_majors: 'Africana Studies*|Africana Studies–English|Anthropology|Chinese*|Classics*|English Literature*|English Writing|Film Studies*|French*|German|History of Art & Architecture|Humanities Area|Italian*|Italian Studies|Japanese*|Liberal Studies|Music*|Philosophy*|Religious Studies*|Russian|Slavic Studies|Spanish|Studio Arts*|Theatre Arts*', business_majors: 'Accounting|Finance|General Management|Global Management|Marketing', engineering_majors: 'Bioengineering*|Chemical Engineering*|Civil Engineering*|Computer Engineering|Electrical Engineering*|Engineering Physics|Industrial Engineering*|Materials Science and Engineering*|Mechanical Engineering*', professional_majors: 'Administration of Justice*|Applied Developmental Psychology|Architectural Studies|Athletic Training|Clinical Dietetics and Nutrition|Communication: Rhet & Comm|Communication Science|Dental Hygiene|Emergency Medicine|Health Information Management|Health Services|Health and Physical Activity|Information Science|Legal Studies*|Media and Professional Communications|Nursing|Pharmacy|Public Service*|Rehabilitation Science|Social Work*' ) else # handle validation errors end @college= College.find_or_create_by_name!('Harvard') if @college.update_attributes( url: 'harvard', public: 'Private', years: '4-year', category: 'National University', calendar: 'Semester', location: 'Cambridge, MA', setting: 'Small City (50-250k)', degrees: 'Bachelors, Masters, Doctoral', rotc: 'Air Force, Army, Navy', considered: 'Academic GPA|Alumni Relation|Application Essay|Character/Personal Qualities|Extracurricular Activities|First Generation College Student|Geographical Residence|Interview|Racial/Ethnic Status|Recommendations|Rigor of secondary school record|Standardized Test Scores|Talent/Ability|Volunteer Work|Work Experience', student_faculty: '7 to 1') else # handle validation errors end 

我忽略了所有其他的大学。 到目前为止,我已经有200所学校,但皮特是迄今为止唯一拥有综合数据的学校。 剩下的只是基本的数据,比如哈佛。 为了简洁起见,我也把皮特的一些数据省略了,但是让我知道如果你想让我包括其余的。

编辑:我试图拿出在science_majors *的下来,然后运行rake db:seed ,但这并没有改变任何东西。

您正在收到编码错误,因为您的文件系统未configuration为对您添加的date进行编码(因为它可能包含新字符 – 可能位于您的HTML实体编码的地图URL中) 。

以下将通过在您的机器上设置UTF-8语言环境来解决此错误:

 # from your command line export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8 export LC_ALL=en_US.UTF-8 bundle 

设置系统区域设置的好处是所有的gem(前进)都将使用UTF-8编码进行捆绑。

编辑:

或者,如果您不想更改系统编码,则可以通过在Gemfile中指定编码标准来在整个项目范围内设置编码:

 if RUBY_VERSION =~ /1.9/ # assuming you're running Ruby ~1.9 Encoding.default_external = Encoding::UTF_8 Encoding.default_internal = Encoding::UTF_8 end 

 #encoding: utf-8 

在文件的顶部

你也可以尝试export RUBYOPT="-KU -E utf-8:utf-8"这个GH线程中提到的export RUBYOPT="-KU -E utf-8:utf-8"

如果你在ruby LANG=C.UTF-8容器中有这个问题,你可以设置LANG=C.UTF-8

 docker run -it --rm -e LANG=C.UTF-8 ruby ... 

或者看这个问题 。

像其他人一样,我添加了#encoding: utf-8到我的(在这种情况下,seed.rb)文件的顶部,但仍然无法使耙子任务工作。

有趣的是,一个朋友build议我从种子文件的顶部删除附加的rails生成的注释,以便只#encoding: utf-8

你会知道什么 – 它的工作。

在你的种子文件中有一个无效的字符,在我的情况下,从`to'改变单引号。

Interesting Posts