это действительно глупый вопрос, но у меня есть крайний срок, и я очень нервничаю, и я попробовал все. На самом деле это даже работало на секунду, но я, должно быть, что-то сломал.
У меня есть элемент по умолчанию, который я хочу переопределить каждый раз, когда пытаюсь добавить другой элемент. Раньше у меня было сообщение об ошибке, но я не хочу, чтобы оно было ошибочным, я просто хочу, чтобы оно установило все на false, а это приложение на true.
Я перепробовал все, перед сохранением, после сохранения / обновления именованных областей, сопоставления каждой из них с ложным, а затем сохранения, проверки наличия изменений в функции ... Я думаю, что у меня есть все нужные части, но я могу ' положить их вместе. Пожалуйста, помогите пожалуйста: (
Может быть, для этого есть даже быстрая проверка, я не уверен
Я не могу уточнить с кодом, потому что я пробовал миллион разных вещей.
Существует логическая настройка для элемента, который называется is_featured.
Когда вы создаете элемент, вы можете установить его как функцию или нет.
Если в базе данных есть другие элементы, их следует обнулить, а элемент, который был только что обновлен или создан для отображения, должен иметь значение true.
Я пробовал это в модели с до / после / сохранить / обновить, а также контроллер при создании и обновлении
Хорошо, я добавлю немного моего глупого кода, который я не знаю, почему не работает
В контроллере:
if params[:app][:is_on_front_page] == true
App.all.map{|m|( m != @app ) ? m.is_on_front_page = true : m.is_on_front_page = false}
конец
или
named_scope :is_on_front_page, :conditions => { :is_on_front_page => true }
after_update do
if self.is_on_front_page.changed? and App.is_on_front_page.count >= 1
App.all.map{|m| m.is_on_front_page = false;m.save}
end
is_on_front_page = true
save!
end
но это не позволит мне сохранить или войти в бесконечный цикл, или кричит на меня из-за названной области видимости