#ror #ruby #rubyonrails #webdev
Hej mirki, mam problem.
Mam trzy modele - Film, Użytkownika oraz Zamówienie.
Model Zamówienie to tabela łączona (has_many :through) pomiędzy filmami i użytkownikami (relacja wielu-do-wielu). Ta tablica łączona ma jednak dodatkowe pola (np. status - zrealizowane bądź nie). Powiedzmy, że mam użytkownika oraz film - jak teraz napisać w kontrolerze instrukcje, które pozwolą mi na stworzenie tej tabeli Zamówienie z dodatkowym parametrem? samo
user.movies << movies (tak, ogólnie
@Daronk:
user = User.find(currentuser.id) - zbędne, do wywalenia. Używasz current_user :)

Można to na pewno skrócić wybieranie moviesids mapem:

movies_ids = user.orders.where("status = true").map(&:movie_id)
Dodatkowo takie coś "orders.where("status = true")" najlepiej przerzucić do modelu jako scope. Daje to kod bardziej DRY
No i zapytania do bazy masz tutaj dwa - przy pobieraniu movie_id z orderu już nie sięga do bazy danych

Nie wiem, czy dobrze zrozumiałem, ale reasumując, ja bym
Ciężko gdybać, na pewno nie zaszkodzi. W Polsce wymagają praktyki (zwyczajnie obycia, również we własnym zakresie). Na zachodzie bankowo masz wzięcie - nawet jako trainee albo apprentice. Trzeba przyznać, że program jest bogaty, ale wszystko wchodzi dopiero jak świadomie coś robisz, nie jedziesz tylko z tutorialem. To czego tu nie widzę to php i mysql, mimo to czy jako front-end potrzebujesz tego?
No elo.

W metodzie Array#sample [doc] można podawać swój własny generator liczb. Ja najpierw zrozumiałem rng za range (herp-derp), i używałem to np. tak [*1..10].sample(2, random: (1..3)). Może mi ktoś wytłumaczyć w jaki sposób ta metoda używa range'a za random numbers generator?
#programowanie #ruby
@zerozero7: Nie jestem pewien czy o to chodzi.Mam wrażenie, że tak jak standardowy rng generuje jakąś deterministyczną sekwencję na podstawie seeda, tak tutaj generowana jest po prostu sekwencja kolejnych liczb z range, a sample po prostu używając takiego generatora wypluwa jego wynik zadaną ilość razy
Kochanie Mireczki,
W ramach #naukaprogramowania obiektowego i #ruby postanowiłem napisać sobie prostego tekstowego RPG-a. Niestety właśnie z tym obiektowym jest u mnie cienko, i o ile obiekty "fizyczne" jestem w stanie sklasyfikować do pewnego momentu, to już z wymyśleniem klas abstrakcyjnych, mających na celu zagwarantowanie jakichś funkcjonalności jest u mnie gorzej.
Żeby uniknąć robienia bałaganu i poprawiania, postanowiłem najpierw sobie tę grę rozrysować ładnie w UML-u.

Na obrazku to co dotychczas wymyśliłem
Pobierz m.....o - Kochanie Mireczki,
W ramach #naukaprogramowania obiektowego i #Ruby postan...
źródło: comment_1bAF7YHMyhAUP6XIMcGED4SUGbFKROrt.jpg
@meffcio: Wybacz, że może mało rozwlekle w stosunku do tego co napisałeś:

- jeśli obiekt ma mieć jakąś akcję którą można na nim wykonać, może lepiej pomyśleć nad interfejsem? Np. zamiast "wszystko-to-thing" dać interfejs "Inspectable", który ma metody: "getshortdescription", "getdetaileddescription"?
- warto rozdzielić obiekty widoczne na mapie od tych w inventory. Np. Character niech sobie będzie, ale może raczej dziedziczy po jakimś MapEntity?
- podobnie broń czy
Po ponad dwóch tygodniach męczenia się, jestem #!$%@? na maksa, ponieważ czuję, że zmarnowałem ten czas. Próbowałem napisać szachy w linii komend (bez AI) i gówno mam. Poległem na sprawdzaniu wszystkich kwestii związanych z szachowaniem i matowaniem. Czy jak figura się ruszy, to odsłoni króla? Czy jak figura zablokuje bicie, to odsłoni króla? Programowanie tego wszystkiego przypomina syzyfową pracę - gdy tylko uda mi się coś po wielu godzinach kombinowania rozwiązać we
@Ragnarokk: @Yahoo_:

Ruby ma 2 operatory logiczne or i ||, które różnią się tylko priorytetem.

Przykładowo:

a = false || true # => true
a # => true

a = false or true # => true
a # => false

Co do tego kodu wyżej to idzie tak:

expect(@result).to be
Jeśli @result "istnieje" (jest różny od nil) to kontynuuj test.
Jeśli nie to rzuć wyjątkiem.

Czyli słowem zapis:
#linux #debian #virtualbox
Mam serwer-debian x8664 na vboxie, goszczony na lubuntu, procesor amd x3 1.8GHz.
Na debianie działa jre7+apache2+tomcat7. Serwer działa po to by chodziło na tym jruby i railsy ze standardową bazą sqlite.
Jest to najprostsza testowa apka zrobiona za pomocą:

rails g scaffold Pracownik imie:string wiek:integer adres:text


Problem jest w tym, że jak robie coś na railsach poprzez przeglądarke(dodawanie użytkowników poprzez wypełnianie tych 3 pól tekstowych) to zużycie CPU
Ja bym stawiał na development i ewentualnie nie cachowanie czegoś. Nie wiem jak w ror, ale wiele systemów potrafi tak dużo wolniej chodzić - co jest przecież akceptowalne dla developerki. Druga rzecz, pytanie czy środowisko jest w całości ustawione już poprawnie i nie można tego zoptymalizować jakoś.
Próbowałeś sprawdzić jak chodzi nie w trybie dev, tylko produkcyjnym?
@Jojne_Zimmerman @marahin: przeczytałem i doczytałem. CPU ma bardzo duże zużycie, bo to... JRuby. A JRuby ma to do siebie, że ora CPU, ale jest bardzo stabilne. Osobiście korzystam na produkcji z trzema apkami, w tym jedna która regularnie odświeża informacje, parsuje i wyświetla. Load zawsze koło 1 - 1.1, przy reloadach nginxa / restartach aplikacji, przy starcie JRuby, sięga 100%. Jeśli chcesz tego uniknąć, musisz iść w MRI.

Prócz tego na
Mam takie pytanie do ogarniętych w Ruby mirków.
Mam ja sobie taki kod:

def method(y)
vertical =...
(y+1).upto(9, &vertical)
(y-1).downto(0, &vertical)
end
Funkcja dotyczy pewnej gry, która odbywa się na planszy składającej się z kolumn, będących tabelami z 10 wartościami każda. Funkcja służy do sprawdzenia czy dane pole y może zostać zaatakowane przez przeciwnika w pionie. I teraz tak.
1) jeśli na sprawdzanym polu nikogo nie ma -> iterator sprawdza kolejne pole,
PROBLEM ROZWIĄZANY.
Aby komenda break zawarta w Proc'sie nie powodowała błędu LocalJumpError, Procs musi zostać przekazany do iteratora za pomocą metody .call, czyli zamiast:

(y+1).upto(9, &vertical)
musimy użyć

(y+1).upto(9) { |i| vertical.call(i) }
I tyle.

W pierwszym przypadku do wykonania bloku kodu ruby wykorzystuje yield zawarty w iteratorze, w drugim metodę .call. Skąd się bierze różnica w efektach, tego nie wiem więc się nie wypowiem (choć na pewno chodzi
Nocna misja wykonana.
Apka w jruby (+ rails) działa na virtualnym debianie (który udaje kompa z lokalnej sieci, żaden localhost) i oglądam sobie ją po ip i porcie na firefoxie. Bałem się ją ustawiać od razu na produkcyjnym vps (słusznie).

Zabawy było na całą noc. Binda skonfiguruje, postfixa skonfiguruje, nginxa, jre ale jak #!$%@? dochodzi do nieścisłości z rvm i gemami to kaplica i męka, kilkakrotnie instalacje wszystkiego od początku.
pozdro dla
W #pracbaza #zagranico chcielismy jakos rozwiazac problem regularnego wietrzenia. Lepsze powietrze -> lepiej sie czujemy -> lepiej pracujemy.
Tym sposobem powstal bot (prosty skrypt w #ruby, ktory dziala na serwerze testowym), ktory z naszego czatu pokoju wola co 2h osobe, by otwarla okno, a nastepnie za 10 minut wola kogos innego by okno zamknal.
Taki tam #protip. Dziala bardzo fajnie. :D
Pobierz JavaDevMatt - W #pracbaza #zagranico chcielismy jakos rozwiazac problem regularnego w...
źródło: comment_uiPhCCV0Mk53XeTLHyD7wZ8n1SKbgDTm.jpg
W nawiązaniu do mojego poprzedniego wpisu zdedcydowałem się kupić najpierw na próbę zestaw https://deals.thenextweb.com/sales/pay-what-you-want-front-end-master-bundle za 6,68$ (co wyszło mi po przeliczeniu przez PayPal około 25 PLN). Wszystko się udało bez problemów z płatnościami, wszystko jak po maśle. Dlatego zachęcony zdecydowałem się kupić zestaw https://deals.thenextweb.com/sales/java-developer-online-course-bundle za 39$. Jako że bardzo mi zależało na kursach z RoR, ale w zestawie który chciałem był tylko jeden mnie interesujący poszukałem trochę w internecie i znalazłem kod
@R4vPL: nie wiem, tydzień temu to obczaiłem, ale wygląda na to że kupony pojawiają się dość regularnie. Np. dostałem przedwczoraj maila że do końca tamtego dnia była promocja jakiegoś kursu który sporo kosztuje a zeszli do paru dolców. Także trzeba polować albo zapisać się na spam lettera.
Nie. I nie dlatego, że jestem mendą, tylko dlatego, że:
a) nie znam Ruby ( ͡° ͜ʖ ͡°)
b) dalej uważam ideę robienia sklepu od zera za głupią (sorry)
c) jest masa ludzi, którzy "dostosują" Ci jakiegoś gotowca (darmowego lub płatnego) za golda i zrobią to lepiej, szybciej i taniej, niż nas dwóch robiących własny sklep
d) mam nieco inne zainteresowania zawodowe i sklepy internetowe, jak i cała