Pierwsza aplikacja

Nie byłem pewien czy wstawić tutaj, czy do Zielonej szkoły, ale bardziej pasuje chyba tutaj, mimo że jest ponad 100 LoC.

Natknąłem się na forum wypowiedź, że jeśli się wrzuci aplikację, to może ktoś pomoże w tym co się robi źle, etc. więc mam zamiar tak zrobić : )

Jest to moja pierwsza gotowa aplikacja w RoR (wcześniej była jedna mała, ale równie dobrze mogła tam być użyta sinatra bo był to przerost formy nad treścią, raptem jeden model i jedna nie RESTowa akcja).

Nie jestem jeszcze zapoznany z TDD/BDD, właśnie skończyłem część tej aplikacji i mam zamiar dopisać testy - wiem, że TDD mówi, żeby najpierw napisać test, potem funkcjonalność, ale uznałem że za pierwszym razem tak będzie wygodniej.

Prosiłbym uwagi co do kodu, generalnie Ruby/Rails/jQuery, bez html/css, bo po prostu niezbyt html/css lubię i traktuję go raczej jako taki “przymus” : S
Cały kod mam dostępny tutaj:
https://github.com/swistak35/Marmot

A dotyczące tych rzeczy zamierzam napisać testy:
https://github.com/swistak35/Marmot/issues?labels=TEST
Do testowania zamierzam korzystać z RSpeca i Capybary, z prostego powodu - railscasta o testowaniu. : )

Mile widziane propozycje jakie jeszcze powinienem dopisać testy (lub jakie są niepotrzebne) no i najlepiej ogólne obiekcje do kodu, kontrolerów, modeli, widoków, jak leci : )
Z góry dzięki nawet jeśli nikomu nie będzie się chciało : )

EDIT: Aplikacja ma mi przysłużyć podwójnie - po pierwsze, jako moja strona domowa (wiem, że trzymanie strony domowej w RoR to dziwny pomysł, ale…), a po drugie, jako aplikacja pokazowa, co potrafię, czyli mam zamiar dopisywać do tego różne funkcjonalności np. z railscastów (wiem, że lepszym pomysłem byłby jakiś commerce, ale na siłę też tu mogę wepchnąć co mi się podoba - w końcu to moje, nie? ; ))

Tak na szybko. Całkiem niezły kod, widać, że się przyłożyłeś. To na pewno jest twoja pierwsza aplikacja w ror?
+1 za używanie rbx :wink:

def authorize redirect_to panel_new_session_path, :notice => "Brak dostepu." unless current_admin end

[code]undefined local variable or method `panel_new_session_path’ for #Blog::PostsController:0x007ff7419c0370

:(master) :arrow_forward: rake routes
(…)
new_panel_session GET /panel/sessions/new(.:format) {:action=>“new”, :controller=>“panel/sessions”}
(…)[/code]
Przy próbie wykonania migracji:

rake db:migrate --trace rake aborted! couldn't parse YAML at line 183 column 9 /Users/mgajewski/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:148:in `parse' /Users/mgajewski/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:148:in `parse_stream' /Users/mgajewski/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:119:in `parse' /Users/mgajewski/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:106:in `load' /Users/mgajewski/.rvm/gems/ruby-1.9.2-p290/gems/RedCloth-4.2.3/lib/redcloth/formatters/latex.rb:6:in `<module:LATEX>' /Users/mgajewski/.rvm/gems/ruby-1.9.2-p290/gems/RedCloth-4.2.3/lib/redcloth/formatters/latex.rb:3:in `<top (required)>' /Users/mgajewski/.rvm/gems/ruby-1.9.2-p290/gems/RedCloth-4.2.3/lib/RedCloth.rb:21:in `require' /Users/mgajewski/.rvm/gems/ruby-1.9.2-p290/gems/RedCloth-4.2.3/lib/RedCloth.rb:21:in `<top (required)>'
Takie:

        flash.now.alert = "Invalid email or password"

I inne tego typu tekstu warto moim zdaniem wrzucić do locales (nawet jak nie masz zamiaru robić tłumaczeń na inne języki).

widok: _comment.html.haml

  1. comment.id nie musi iść w “#{}”
#comment{:id => "#{comment.id}", :class => "rectangle tleft"}
  1. ew. możesz zamienić to na:
#comment[@comment]{:class => "rectangle tleft"}

Dzięki temu haml sam zajmie się ustawieniem idków a ty jako bonus dostaniesz jeszcze klasy: comment_1 itd.
http://cheat.errtheblog.com/s/haml/

Polecam link_to i image_tag.

%a{:href => "http://www.goldenline.pl/rafal-lasocha"} %img{:alt => "Goldenline", :src => "/assets/static/goldenline.png", :title => "GoldenLine profile"}/


to będzie jakoś: number_to_human_size(100000000, :locale => ‘en’, :significant => false) :wink:

def parcel_size_parser(size) if size/1024 > 1 if size/1048576 > 1 "#{(size.to_f/1048576).round(3).to_s} MB" else "#{(size.to_f/1024).round(3).to_s} KB" end else "#{size.to_s} B" end end
Aha - no i przede wszystkim - http://swistak35.com/ nie działa :slight_smile:

Co do migracji - nie wiem o co chodzi, może ma to związek z tym, że namespace blog, files etc. dodałem dość niedawno, kiedy już wszystkie migracje były gotowe - migracje mają jakieś powiązanie z namespacami?

Co do reszty uwag - dzięki : )

A swistak35.com nie działa, bo aktualnie zmieniam serwer DNS - tzn, właśnie przygotowuję się do wdrożenia aplikacji tej railsowej, bo wcześniej była prosta statyczna strona na linuxpl.com.

EDIT: RBX? Masz na myśli Rubiniusa? Nie korzystam z niego, korzystam ze zwykłego Rubiego, MRI.