Active Record to wzorzec, który łączy logikę domeny z abstrakcją pamięci w jednym obiekcie. Użyj tego znacznika w przypadku pytań dotyczących wzorca, [rails-activerecord] w przypadku pytań dotyczących frameworka ORM Rails.
Jeśli mam zasięg z lambda i wymaga on argumentu, w zależności od wartości argumentu, mógłbym wiedzieć, że nie będzie żadnych dopasowań, ale nadal chcę zwrócić relację, a nie pustą tablicę: scope :for_users, lambda { |users| users.any? ? where("user_id IN (?)", users.map(&:id).join(',')) : [] } To, czego tak naprawdę chcę, to …
Mam już działające rozwiązanie, ale naprawdę chciałbym wiedzieć, dlaczego to nie działa: ratings = Model.select(:rating).uniq ratings.each { |r| puts r.rating } Wybiera, ale nie drukuje unikalnych wartości, drukuje wszystkie wartości, w tym duplikaty. I to jest w dokumentacji: http://guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields
Próbuję utworzyć niestandardowe zadanie rake, ale wygląda na to, że nie mam dostępu do moich modeli. Myślałem, że było to coś domyślnie uwzględnionego w zadaniu dotyczącym szyn. Mam następujący kod w lib / task / test.rake: namespace :test do task :new_task do puts Parent.all.inspect end end A oto jak wygląda …
Mój model produktu zawiera niektóre elementy Product.first => #<Product id: 10, name: "Blue jeans" > Teraz importuję niektóre parametry produktu z innego zestawu danych, ale w pisowni nazw występują niespójności. Na przykład w innym zbiorze danych Blue jeansmożna przeliterować Blue Jeans. Chciałem Product.find_or_create_by_name("Blue Jeans"), ale stworzy to nowy produkt, prawie …
Wynika to z poprzedniego pytania, na które udzielono odpowiedzi. Odkryłem, że mogę usunąć złączenie z tego zapytania, więc teraz działa zapytanie start_cards = DeckCard.find :all, :joins => [:card], :conditions => ["deck_cards.deck_id = ? and cards.start_card = ?", @game.deck.id, true] To wydaje się działać. Jednak gdy próbuję przenieść te karty DeckCards …
W aktywnym rekordzie znajduje się przydatny atrybut dynamiczny o nazwie find_or_create_by: Model.find_or_create_by_<attribute>(:<attribute> => "") Ale co jeśli będę musiał znaleźć_lub_tworzyć za pomocą więcej niż jednego atrybutu? Powiedzmy, że mam model do obsługi relacji M: M między grupą a członkiem o nazwie GroupMember. Mógłbym mieć wiele instancji, w których member_id = …
Czy istnieje sposób, aby uzyskać kolekcję wszystkich modeli w aplikacji Rails? Zasadniczo mogę zrobić: Models.each do |model| puts model.class.name end
Czy istnieje sposób na sprawdzenie, czy rzeczywisty rekord jest unikalny, a nie tylko kolumna? Na przykład model / tabela przyjaźni nie powinna mieć wielu identycznych rekordów, takich jak: user_id: 10 | friend_id: 20 user_id: 10 | friend_id: 20
Szukam najlepszego podejścia do usuwania rekordów z tabeli. Na przykład mam użytkownika, którego identyfikator użytkownika znajduje się w wielu tabelach. Chcę usunąć tego użytkownika i każdy rekord, który ma swój identyfikator we wszystkich tabelach. u = User.find_by_name('JohnBoy') u.usage_indexes.destroy_all u.sources.destroy_all u.user_stats.destroy_all u.delete To działa i usuwa wszystkie referencje użytkownika ze wszystkich …
Jeśli utworzę nową migrację rails 3 z (na przykład) rails g migration tester title:tester user:references wszystko działa dobrze ... jeśli jednak dodam kolumnę z czymś w rodzaju: rails g migration add_user_to_tester user:references pole odniesienia nie jest rozpoznawane. Krótko mówiąc, pytanie brzmi: jak dodać kolumnę odwołującą się do migracji szyn z …
Przykład o czym mówię: class Person < ActiveRecord::Base def name=(name) super(name.capitalize) end def name super().downcase # not sure why you'd do this; this is just an example end end Wydaje się, że to działa, ale właśnie przeczytałem sekcję dotyczącą zastępowania metod atrybutów w dokumentacji ActiveRecord :: Base i sugeruje użycie …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.