Он может создавать, но не может обновляться.
main.rbСпособна создавать, но не может обновить
post '/create' do
o = Organization.new(
title: params[:organization][:title],
body: params[:organization][:body],
location: [params[:organization][:longtitude], params[:organization][:latitude]]
)
if o.save
redirect '/'
else
flash[:error] = "Error saving a organization document."
end
end
get '/edit/:id' do |id|
@o = Organization.find(id)
slim :edit
end
put '/update/:id' do
@o = Organization.find(params[:id])
@o.update_attributes(title: params[:organization][:title],
body: params[:organization][:body],
location: [params[:organization][:longtitude], params[:organization] [:latitude]])
slim :show
end
edit.slim
h2 Edit
form#organizationForm action="/update/#{@o.id}" method="POST"
input type="hidden" name="_method" value="PUT"
|title
input type="text" name="organization[title]" value="#{@o.title}"
|body
input type="text" name="organization[body]" value="#{@o.body}"
|longtitude
input type="text" name="organization[longtitude]" value="#{@o.location[0]}"
|latitude
input type="text" name="organization[latitude]" value="#{@o.location[1]}"
input type="submit" name="submit" value="Update"
organization.rb
class Organization
include Mongoid::Document
include Mongoid::Geospatial
field :title, type: String
field :body, type: String
# define fields
field :location, type: Point, spatial: true
field :route, type: LineString
field :area, type: Polygon
field :around, type: Circle
end
messgage Ошибка,
Mongoid :: Errors :: UnknownAttribute at/update/55a6781373696454b5000000 Проблема: Попытка установить значение для 'longtitude', которое недопустимо для модели Organization. Реферат: Без включения Mongoid :: Attributes :: Dynamic в вашей модели и атрибут еще не существует в хэшах атрибутов, пытаясь вызвать Organization # longtitude =, потому что это недопустимо. Это также инициируется передачей атрибута любому методу, который принимает хэш атрибутов, и создается вместо получения NoMethodError. Разрешение. Вы можете включить Mongoid :: Attributes :: Dynamic, если вы часто будете писать значения для неопределенных полей. файл: processing.rb местоположение: process_attribute линия: 96
Я думаю, нет необходимости включать Mongoid::Attributes::Dynamic
, потому что может создать.
Извините, что на самом деле не очень много на использовании тонких, но не должны ли эти поля быть «организацией [местоположение]»? Так вы обычно обрабатываете массив в стандартном сообщении формы. –
Спасибо @BlakesSeven, да может обрабатывать его как массив, но я хотел бы разделить форму ввода. кстати, когда я снова запускаю эту программу, ошибок нет. извините за это. – tknv