我遇到了FasterCSV和我的rake db:种子迁移的问题.我得到错误:"rake aborted!unquoted字段不允许\ r或\n(第2行)"对以下seeds.rb数据:
require 'csv'
directory = "db/init_data/"
file_name = "gardenzing020812.csv"
path_to_file = directory + file_name
puts 'Loading Plant records'
# Pre-load all Plant records
n=0
CSV.foreach(path_to_file) do |row|
Plant.create! :name => row[1],
:plant_type => row[3],
:group => row[2],
:image_path => row[45],
:height => row[5],
:sow_inside_outside => row[8]
n=n+1
end
Run Code Online (Sandbox Code Playgroud)
我已经搜索了这个问题的解决方案,并发现对于很多人来说这是一个UTF-8编码问题.我已经尝试过要求iconv和:encoding =>'u',但这会给我错误"UTF-8中的无效字节序列".
我是新手,我无法弄清楚它是否真的是一个我需要破解的编码问题(我一直试图做不成功,如果是这样,我真的可以使用一些指导)或者更可能是我感觉,我已经做了一个简单的失误,并且做了一些错误的方式我设置了seeds.rb,可能还有我的excel - > csv文件.csv文件中没有错误或笨拙的数据.它是简单的单字符串,文本和整数.请帮忙!
这是Ruby上的另一个真正的新手,所以请温柔......我正在使用alexreisner的Geocoder on rails 3.0,我无法调用Geocoder :: Results lib中的方法.我仔细研究了Geocoder文档,但我无法完成一件简单的事情:从用户提交的地址中取出"状态"结果.因此,将"加利福尼亚州旧金山的123 Fake Street"变成"CA"或"California".
(我的程序目前只使用"状态"信息来帮助确定结果,但我希望在以后改进应用程序时使用完整的地址信息,这就是我要求提供完整地址的原因. )
我已经通过我从这里找到的文档和其他答案中收集到的最好的东西建立了我的模型,但是之前的答案类似于这个主题并没有帮助我:
class Project < ActiveRecord::Base
attr_accessible :title, :address, :latitude, :longitude
belongs_to :user
geocoded_by :address
after_validation :fetch_coordinates
reverse_geocoded_by :latitude, :longitude do |obj, geo|
obj.state = geo.state
obj.country_code = geo.country_code
obj.address = [geo.state, geo.country_code].join(",")
end
after_validation :reverse_geocode
end
Run Code Online (Sandbox Code Playgroud)
但是这会出现状态,国家代码和地址的"未定义错误方法".我不明白,因为Geocoder gem的文档清楚地提供了这些方法.我的模型似乎根本无法访问它们.(为了记录,我的模型能够从输入的地址中提取纬度和经度,所以看起来Geocoder配置正确.而且"geocoded_by"方法效果很好.此外,它已正确设置为Google API).
我很确定我在这里缺少一些直截了当的东西.在rails控制台中,我甚至可以使用Geocoder.search("Miami,FL")并提取所有县,州和城市信息,但我似乎无法通过我的模型提取"状态".
谢谢你的帮助!
我正在使用RMeetup gem从meetup.com提取数据.在开发模式中,我可以在我的控制器,模型或帮助器中使用此代码,而不会出现任何问题:
RMeetup::Client.api_key = "matt's key"
RMeetup::Client.fetch(:groups, :lat => @user.latitude, :lon => @user.longitude")
Run Code Online (Sandbox Code Playgroud)
但是当我尝试部署时,Heroku告诉我:
app[web.1]: NameError (uninitialized constant RMeetup::Client):
Run Code Online (Sandbox Code Playgroud)
我是Rails的新手,我不知道如何解决这个问题.我已经尝试创建一个新的RMeetup模型,以便更好地存储这些信息并解决问题,但Rails告诉我:
The name 'RMeetup' is either already used in your application or reserved by Ruby on Rails. Please choose an alternative and run this generator again.
Run Code Online (Sandbox Code Playgroud)
RMeetup gem不是专门位于我的gemfile的dev部分.使问题复杂化,我实际上并没有保存从Meetup.com收到的任何数据,直到用户填写表格.所以我没有一个自然的地方来建立一个来自RMeetup获取操作结果的模型.我目前在帮助器或控制器中执行此操作.
那么为什么我的本地开发者对"RMeetup :: Client"没有问题,但是Heroku做了,我该如何解决?
根据要求,这里也是Gemfile:
source 'https://rubygems.org'
ruby '2.0.0'
gem 'rails', '4.0.0'
gem 'bcrypt-ruby', '3.0.1'
gem 'pg', '0.15.1'
gem 'geocoder'
gem 'rmagick'
gem 'carrierwave'
gem 'rMeetup'
group :development, :test do
gem 'rspec-rails', '2.13.1'
gem …Run Code Online (Sandbox Code Playgroud)