#ruby-on-rails #ruby-on-rails-3
#ruby-on-rails #ruby-on-rails-3
Вопрос:
у меня есть полиморфная адресная модель, которую я использую в нескольких формах. я выполняю простую проверку в этой модели, но она не работает. что я делаю не так?
Адресная модель
class Address < ActiveRecord::Base
attr_accessible :street1, :street2, :city, state, :zip
belongs_to :addressable, :polymorphic => true
validates_length_of :state, :maximun => 2, :too_long => "Field State is to long"
validates_numericality_of :zip, :on => :create, :message => "Zip Code must be numeric!"
validates_length_of :zip, :within => 5..9, :too_long => "Zip Code to long.", :too_short => "Zip Code to short"
end
Location Model
class Location < ActiveRecord::Base
has_one :address, :as => :addressable, :dependent => :destroy
belongs_to :account
accepts_nested_attributes_for :address
validates_presence_of :name
validates_length_of :name, :maximum =>80
end
Форма редактирования местоположения — например
<% form_for [@account, @location] do |f| %>
<table>
<%= render :partial => 'form', :locals => {:f => f} %>
</table>
<%= f.submit("Update") %>
<% end %>
спасибо за любую помощь.
Изд
Ответ №1:
В чем ошибка? Какая проверка не выполняется? Кроме того, вы могли бы взглянуть на: http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#method-i-validates_associated
Комментарии:
1. ошибки нет. когда я создаю или обновляю, это не проверяется. например, в поле zip я могу вводить буквы, и это все равно сохраняет запись без каких-либо ошибок.
2. Попробуйте добавить:validate => true к модели местоположения в связи has_one с адресом