Использование ограничения модели в представлении - PullRequest
1 голос
/ 01 февраля 2012

Я пытаюсь следовать одному из основных правил рельсов СУХОЙ (не повторяйся). У меня есть следующая модель

class Micropost < ActiveRecord::Base
  attr_accessible :content      
  belongs_to :user
  validates :content, :presence => true, :length => { :maximum => 140 }
  validates :user_id, :presence => true
  default_scope :order => 'microposts.created_at DESC'
end

, и в форме я ограничиваю текстовую область с помощью Java-скрипта

f.text_area :content,
  :onKeyDown =>"textCounter(micropost_content,counter,140)",
  :onKeyUP =>"textCounter(micropost_content,counter,140)"

Я хочу использовать максимальное значение из проверки в функции сценария Java.

Как мне это сделать?

1 Ответ

2 голосов
/ 01 февраля 2012

Самое простое решение - извлечь магическое число 140 в константу, а затем использовать его как при проверке:

class Micropost < ActiveRecord::Base

  MAX_CONTENT_LENGTH = 140

  validates :content, 
            :presence => true, 
            :length => { :maximum => MAX_CONTENT_LENGTH }

end

, так и внутри представления:

f.text_area :content,
            :onKeyDown => "textCounter(micropost_content, counter ,#{Micropost::MAX_CONTENT_LENGTH})",
            :onKeyUP => "textCounter(micropost_content, counter, #{Micropost::MAX_CONTENT_LENGTH})"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...