Вопросы с тегом «activerecord»

98
Как выполнить необработанное обновление sql с динамической привязкой в ​​рельсах

Я хочу выполнить одно обновление raw sql, как показано ниже: update table set f1=? where f2=? and f3=? Этот SQL будет выполняться ActiveRecord::Base.connection.execute, но я не знаю, как передать значения динамических параметров в метод. Может ли кто-нибудь помочь мне в этом?...

98
Найдите все записи, у которых количество ассоциаций больше нуля

Я пытаюсь сделать что-то, что, как я думал, будет простым, но, похоже, это не так. У меня есть модель проекта, в которой много вакансий. class Project < ActiveRecord::Base has_many :vacancies, :dependent => :destroy end Я хочу получить все проекты, в которых есть хотя бы 1 вакансия. Я...

96
Как получить исходное значение атрибута в Rails

есть ли способ получить исходное значение атрибута ActiveRecord (= значение, которое было загружено из базы данных)? Я хочу что-то подобное в наблюдателе before_save object do_something_with object.original_name end Задача - удалить объект из хеш-таблицы (фактически переместить его на другой ключ...

96
Как реализовать уникальный индекс для двух столбцов в рельсах

У меня есть таблица, и я пытаюсь добавить уникальный индекс по двум столбцам. Эти столбцы также индексируются. Итак, мой вопрос в том, могу ли я просто удалить индексы, которые были только для одного столбца, или мне нужно использовать все три индекса: add_index "subscriptions", ["user_id"]...

96
Как определить, была ли запись только что создана или обновлена ​​в after_save

#New_record? функция определяет, была ли сохранена запись. Но на after_saveкрючке всегда ложно . Есть ли способ определить, является ли запись новой записью или старой после обновления? Я надеюсь не использовать другой обратный вызов, например, before_createчтобы установить флаг в модели или...

96
Как реализовать has_many: через отношения с Mongoid и mongodb?

Используя этот модифицированный пример из руководств Rails , как смоделировать реляционную ассоциацию has_many: through с помощью mongoid? Проблема в том, что mongoid не поддерживает has_many: through, как ActiveRecord. # doctor checking out patient class Physician < ActiveRecord::Base has_many...

96
find () с nil, когда нет записей

В моей текущей программе rails, когда я использую что-то вроде user = User.find(10) Когда нет пользователя с ID = 10, у меня будет исключение, например: ActiveRecord::RecordNotFound: Couldn't find User with ID=10 Могу ли я получить nil вместо того, чтобы вызывать исключение, когда я делаю что-то...

96
Rails фильтрует массив объектов по значению атрибута

Итак, я выполняю запрос к базе данных, и у меня есть полный массив объектов: @attachments = Job.find(1).attachments Теперь, когда у меня есть массив объектов, я не хочу выполнять другой запрос к базе данных, но я хотел бы отфильтровать массив на основе Attachmentобъекта, file_typeчтобы у меня был...

95
Предупреждение об устаревании при использовании has_many: through: uniq в Rails 4

В Rails 4 появилось предупреждение об устаревании при использовании: uniq => true с has_many: through. Например: has_many :donors, :through => :donations, :uniq => true Выдает следующее предупреждение: DEPRECATION WARNING: The following options in your Goal.has_many :donors declaration...

95
Rails создает или обновляет магию?

У меня есть класс, в CachedObjectкотором хранятся общие сериализованные объекты, индексированные по ключу. Я хочу, чтобы этот класс реализовал create_or_updateметод. Если объект найден, он обновит его, в противном случае он создаст новый. Есть ли способ сделать это в Rails или мне нужно написать...

94
пользовательское сообщение проверки для рельсов 3

Rails представил новый способ проверки атрибутов внутри модели. Когда я использую validates :title, :presence => true он работает, но когда я пытаюсь добавить собственное сообщение validates :title, :presence => true,:message => "Story title is required" генерируется ошибка Unknown...

94
Как Rails отслеживает, какие миграции были выполнены для базы данных?

Согласно документу Rails: http://guides.rubyonrails.org/migrations.html «Active Record отслеживает, какие миграции уже были выполнены, поэтому все, что вам нужно сделать, это обновить исходный код и запустить rake db: migrate». Как ActiveRecord на самом деле это делает? Где Active Record хранит...

93
Сохранение нескольких объектов за один вызов в рельсах

У меня есть метод в рельсах, который делает что-то вроде этого: a = Foo.new("bar") a.save b = Foo.new("baz") b.save ... x = Foo.new("123", :parent_id => a.id) x.save ... z = Foo.new("zxy", :parent_id => b.id) z.save Проблема в том, что чем больше я добавляю сущностей, тем дольше это...

93
Как включить ведение журнала отладки SQL для ActiveRecord в тестах RSpec?

У меня есть несколько тестов RSpec для моих моделей, и я хотел бы включить ведение журнала SQL ActiveRecord так же, как я это вижу в режиме сервера Rails. Как это сделать? Я начинаю свои тесты с RAILS_ENV=test bundle exec rspec my/test_spec.rb Благодарность...

91
В рельсах, как я могу узнать, что вызвало сбой .save (), кроме ошибок проверки?

У меня есть модель ActiveRecord, которая возвращается trueиз valid?(и .errors пуста), но возвращается falseиз save(). Если экземпляр модели действителен, как я могу узнать, что вызывает сбой при сохранении?...

91
ActiveRecord Query Union

Я написал пару сложных запросов (по крайней мере, для меня) с интерфейсом запросов Ruby on Rail: watched_news_posts = Post.joins(:news => :watched).where(:watched => {:user_id => id}) watched_topic_posts = Post.joins(:post_topic_relationships => {:topic => :watched}).where(:watched...

91
Проверить, существует ли запись из контроллера в Rails

В моем приложении пользователь может создать бизнес. Когда они запускают indexдействие в моем, BusinessesControllerя хочу проверить, связан ли бизнес с current_user.id: Если да: покажите бизнес. Если нет: перенаправить к newдействию. Я пытался использовать это: if Business.where(:user_id =>...

90
Изменение типа столбца на более длинные строки в рельсах

При первой миграции я объявил, что столбец contentявляется строкой, Activerecord сделал его строкой (255) в соответствии с гемом-аннотацией. После того, как я нажимаю приложение на heroku, которое использует postgres, если я ввожу в форму в content строку длиннее 255, я получаю сообщение об ошибке...

89
Безопасный запрос типа ActiveRecord

Я пытаюсь написать запрос LIKE. Я читал, что чистые строковые запросы небезопасны, однако я не смог найти никакой документации, объясняющей, как написать безопасный LIKE Hash Query. Является ли это возможным? Должен ли я вручную защищаться от внедрения SQL-кода?...