В настоящее время я использую API, а не базу данных, и я хочу быть настолько близким, как ActiveRecord, поэтому я решил пойти дальше и сделать в точности как этот Railscast здесь: http://railscasts.com/episodes/219-active-model
Пока что мой метод сохранения работает хорошо, поэтому я могу сохранять данные в API. Моя проблема с редактированием, мой метод поиска, похоже, проблема ... Вот код!
Редактировать метод в моем контроллере
def edit
@parking = Parking.find(params[:id])
end
Вся модель
class Parking
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :name, :address, :city, :longitude, :latitude, :contributor_name, :contributor_email
validates_presence_of :name, :address, :city, :longitude, :latitude
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
end
def self.find(id)
parking = Parse.get("Parking", id.to_s) // API Call
name = parking["name"]
address = parking["address"]
city = parking["city"]
longitude = parking["location"]["longitude"]
latitude = parking["location"]["latitude"]
contributor_name = parking["contributorName"]
contributor_email = parking["contributorEmail"]
return self
end
def save
if (!valid?)
return false
else
parking = Parse::Object.new("Parking")
data =
{
:longitude => 40.0,
:latitude => -30.0
}
point = Parse::GeoPoint.new(data)
parking["location"] = point
parking["name"] = name
parking["address"] = address
parking["city"] = city
parking["contributorName"] = contributor_name
parking["contributorEmail"] = contributor_email
if (parking.save)
return true
end
end
end
def persisted?
false
end
end
Вот ошибка, которую я сейчас получаю:
undefined method `to_key' for Parking:Class
Извлеченный источник (вокруг строки # 1):
1: <%= form_for(@parking, :html => { :class => "form-horizontal"}) do |f| %>
2: <% if @parking.errors.any? %>
3: <div class="alert alert-error fade in">
4: <a class="close" data-dismiss="alert">×</a>**
Если кто-нибудь в качестве предложений, я действительно открыт для любых идей, я начинаю с рельсов:)
Спасибо!
EDIT:
Когда я делаю в моем контроллере метод редактирования что-то вроде:
def edit
@parking = Parking.new
@parking.name = "foo"
@parking.address = "foo"
@parking.city = "foo"
@parking.longitude = "foo"
@parking.latitude = "foo"
end
Мой просмотр загружает foo во все поля без проблем, поэтому проблема в том, что я должен что-то делать не так с методом find:)