Как изменить запись перед сохранением на Ruby on Rails - PullRequest
0 голосов
/ 10 октября 2011

Ищите способ либо:

  • Измените одно из полей новой записи (а именно - принудительно введите его в нижнем регистре) перед сохранением его в базе данных RoR.Я пробовал:

    before_create do | term |term.myfield.downcase!end

, но это выдает ошибку:

undefined method `before_create' for RowsController:Class

или

  • Проверьте, чтобы все поля были строчными, и если нет, вызвать сообщение об ошибке и не создавать запись.

пробовал:

before_filter :check_lowcase, :only => [:new]
def check_lowcase
  if (Term.new =~ /[^a-z]+/)
    flash[:notice] = "Sorry, must use lowercase"
    redirect_to terms_path
  end
end

это, кажется, просто игнорируется ....

Ответы [ 3 ]

9 голосов
/ 10 октября 2011

Вам нужно сделать это на вашей модели, а не на контроллере:

class YourModel < ActiveRecord::Base
 before_create :downcase_stuff

  private
    def downcase_stuff
      self.myfield.downcase!
     end
end
0 голосов
/ 27 января 2013

before_save { |classname| classname.myfield = myfield.downcase }

0 голосов
/ 10 октября 2011
    before_create :lower_case_fields

    def lower_case_fields
       self.myfield.downcase!
    end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...