Jestem nowy w railach. Co widzę, jest wiele sposobów na znalezienie rekordu: find_by_<columnname>(<columnvalue>) find(:first, :conditions => { <columnname> => <columnvalue> } where(<columnname> => <columnvalue>).first Wygląda na to, że wszystkie z nich generują dokładnie ten sam kod SQL. Uważam też, że to samo dotyczy znajdowania wielu rekordów: find_all_by_<columnname>(<columnvalue>) find(:all, :conditions => …
Mam Releasemodel z mediumi countrykolumny (między innymi). Nie powinno być takich releaseswspólnych medium/ countrykombinacji. Jak napisałbym to jako walidację szyn?
Oto dwa przykładowe kody. Pierwsza z collect: User.first.gifts.collect(&:id) Drugi z pluck: User.first.gifts.pluck(:id) Czy jest jakaś różnica między nimi w działaniu, czy coś innego?
Próbuję nadpisać metodę pobierającą dla modelu ActiveRecord. Mam atrybut o nazwie namew modelu Categoryi chciałbym móc zrobić coś takiego: def name name_trans || name end Jeśli name_transatrybut nie jest nil, zwróć go, w przeciwnym razie zwróć nameatrybut. Jak bym to zrobił? Należy to wtedy nazwać normalnie w ten sposób: @category.name
Rails 4 wprowadził ostrzeżenie o wycofaniu podczas używania: uniq => true z has_many: through. Na przykład: has_many :donors, :through => :donations, :uniq => true Daje następujące ostrzeżenie: DEPRECATION WARNING: The following options in your Goal.has_many :donors declaration are deprecated: :uniq. Please use a scope block instead. For example, the following: …
Podczas pierwszej migracji zadeklarowałem w kolumnie, że contentma być ciągiem Activerecord, zgodnie z annotate gem, aby był ciągiem (255). Po wypchnięciu aplikacji do heroku, która używa postgres, jeśli w treści wpisuję w formularzu ciąg dłuższy niż 255, pojawia się błąd PGError: ERROR: value too long for type character varying(255) Problem …
edytuj 2 Jeśli się na to natkniesz, sprawdź obie odpowiedzi, ponieważ teraz użyłbym do tego skubania Mam dość duży niestandardowy zestaw danych, który chciałbym powrócić, aby wyświetlić go jako json. Jedna część to: l=Location.find(row.id) tmp[row.id]=l ale chciałbym zrobić coś takiego: l=Location.find(row.id).select("name, website, city") tmp[row.id]=l ale to nie wydaje się działać. …
Jak przywrócić nieudaną migrację szyn? Spodziewałbym się, rake db:rollbackże cofnie to nieudaną migrację, ale nie, cofa poprzednią migrację (nieudana migracja minus jedna). I rake db:migrate:down VERSION=myfailedmigrationteż nie działa. Spotkałem się z tym kilka razy i jest to bardzo frustrujące. Oto prosty test, który wykonałem, aby zduplikować problem: class SimpleTest < …
Mam 3 modele: class Student < ActiveRecord::Base has_many :student_enrollments, dependent: :destroy has_many :courses, through: :student_enrollments end class Course < ActiveRecord::Base has_many :student_enrollments, dependent: :destroy has_many :students, through: :student_enrollments end class StudentEnrollment < ActiveRecord::Base belongs_to :student belongs_to :course end Chcę zapytać o listę kursów w tabeli Kursy, które nie istnieją w …
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.