как отвергнуть сообщения проверки допустимости модели в рельсах 3

I have a model,group_question_answer.rb

class GroupQuestionAnswer < ActiveRecord::Base
  belongs_to :group_question
  validates_presence_of :answer 
  validates_presence_of :answer_question    

end

for attribute answer and answer_question i get error message as Group question answers answer can't be blank I need to show only answer cant be blank.i even tried adding :message=>"cant be blank",but still i dont get my required message.how can i remove model name and can just arrtibute error message ....

2
nl ja de
Вы проверенный это? Метод обрисован в общих чертах здесь.
добавлено автор barerd, источник

3 ответы

class GroupQuestionAnswer < ActiveRecord::Base
  attr_accessible :answer
  validate do |group_question_answer|
    errors.add(:base, "answer can't be blank") if group_question_answer.answer.blank?
  end
end

работы отлично

rails c
Loading development environment (Rails 3.2.9)
irb(main):001:0> q = GroupQuestionAnswer.create
   (0.1ms)  begin transaction
   (0.1ms)  rollback transaction
=> #
irb(main):002:0> q
=> #
irb(main):003:0> q.save
   (0.1ms)  begin transaction
   (0.1ms)  rollback transaction
=> false
irb(main):004:0> q.errors
=> #, @messages={:base=>["answer can't be blank"]}>
irb(main):006:0> q.errors.messages
=> {:base=>["answer can't be blank"]}

=> {:base=>["answer can't be blank"]}

irb(main):007:0> q = GroupQuestionAnswer.create(answer: "123")
   (0.1ms)  begin transaction
  SQL (9.0ms)  INSERT INTO "group_question_answers" ("answer", "created_at", "updated_at") VALUES (?, ?, ?)  [["answer", "123"], ["created_at", Fri, 28 Dec 2012 11:01:38 UTC +00:00], ["updated_at", Fri, 28 Dec 2012 11:01:38 UTC +00:00]]
   (1.1ms)  commit transaction
=> #
irb(main):008:0> q.errors.messages
=> {}

По-моему, утвердите лучший способ метода полностью настроить проверки рельсов, и это делает точно, что вы просите.

4
добавлено
спасибо Евгений.. я попробовал, но я получаю неопределенный метод 'add_to_base' для #
добавлено автор Milind, источник
я попробовал.. group_question_answer.errors [: основа] <<, "Пожалуйста, ответьте....".. но я получаю ту же самую ошибку как основа ответов вопроса о Группе, Пожалуйста, ответьте....
добавлено автор Milind, источник
Спасибо Евгений для быстрого ответа..., но после осуществления вашего предложения.. я получил обычную ошибку, поскольку ответы вопроса о Группе основывают can' t быть чистым
добавлено автор Milind, источник
я получаю это сообщение в пульте..
добавлено автор Milind, источник
да.. это в моем answer.rb... утверждает: ответ: присутствие => верный....
добавлено автор Milind, источник
да жаль... Я должен был быть проверенной документацией сам сначала:) отредактированный ответ, проверьте снова
добавлено автор Eugene Rourke, источник
отредактированный снова, добавленный пример использования
добавлено автор Eugene Rourke, источник
я don' t понимают! каким образом вы получаете то же самое сообщение? сделал вы удаляете "validates_presence_of: ответ"?
добавлено автор Eugene Rourke, источник
Где вы получали это сообщение в пульте или в поле зрения?
добавлено автор Eugene Rourke, источник
сделал вы удаляете "validates_presence_of: ответ"?
добавлено автор Eugene Rourke, источник
удалите это также. оставьте только линию от моего примера, если вы хотите заставить его работать
добавлено автор Eugene Rourke, источник

Можно попробовать как это:

validates :answer, presence: { message: ''}
validates :answer_question, presence: { message: ''}
3
добавлено
Спасибо jizak.. я попробовал, утверждает: ответ: присутствие => {: сообщение => ' пожалуйста, answer'} .but все еще я получаю ту же самую обычную полную ошибку.. Ответ ответов вопроса о группе, пожалуйста, ответьте
добавлено автор Milind, источник
Это происходит из-за full_messages метода. Можно повторить через ошибки проверки как мешанина model.errors.each, делают |attr, сообщение | РЕДАКТИРУЕТ: full_messages метод автоматически помещает название атрибута перед сообщением об ошибке. Повторяя использующий каждого можно полностью опустить название атрибута или можете поместить его в другое место.
добавлено автор Darren Coxall, источник
можно ли добавить код, как вы показываете ошибку?
добавлено автор jizak, источник

Попытайтесь добавить их в своем config/locales/en.yml файле

Поскольку там можно сделать что-то вроде этого,

en:
  errors:
    messages:
      answer: answer can't be blank
0
добавлено
pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков

Rails Chat
Rails Chat
87 участник(ов)

You are welcome to discuss Ruby On Rails development process and other stuff