Routes

Witam, po dłuuugiej przerwie ze względu na moją nieudolność w instalowaniu ROR znowu do tego wróciłem i… Tym razem się udało! :slight_smile:
Przysiadłem w końcu do książki “Ruby on Rails - Wprowadzenie (wydanie II)” i na spokojnie zacząłem zagłębiać ten temat i muszę powiedzieć, że moja wiedza jest przynajmniej troszkę bogatsza,
ale do rzeczy:
No więc zainstalowałem Railsy poprzez instalator,
wchodzę do konsoli i piszę:

rails new myapp
następnie:
rails s (uruchamiam serwer)

wchodzę na: “localhost:3000”
i widzę stronę startową Rails:
pisze mi, żebym użył komendy “rails generate” do utworzenia modelów i kontrolerów, więc wpisuję “rails generate” - Ok, stworzyło mi mnóstwo tych folderów itd…

w punkcie 2. pisze, żebym “Set up a default route and remove public/index.html
Routes are set up in config/routes.rb.”
Rozumiem, że mam zmienić plik routes.rb:

[quote]Myapp::Application.routes.draw do

The priority is based upon order of creation:

first created -> highest priority.

Sample of regular route:

match ‘products/:id’ => ‘catalog#view’

Keep in mind you can assign values other than :controller and :action

Sample of named route:

match ‘products/:id/purchase’ => ‘catalog#purchase’, :as => :purchase

This route can be invoked with purchase_url(:id => product.id)

Sample resource route (maps HTTP verbs to controller actions automatically):

resources :products

Sample resource route with options:

resources :products do

member do

get ‘short’

post ‘toggle’

end

collection do

get ‘sold’

end

end

Sample resource route with sub-resources:

resources :products do

resources :comments, :sales

resource :seller

end

Sample resource route with more complex sub-resources

resources :products do

resources :comments

resources :sales do

get ‘recent’, :on => :collection

end

end

Sample resource route within a namespace:

namespace :admin do

# Directs /admin/products/* to Admin::ProductsController

# (app/controllers/admin/products_controller.rb)

resources :products

end

You can have the root of your site routed with “root”

just remember to delete public/index.html.

root :to => ‘welcome#index’

See how all your routes lay out with “rake routes”

This is a legacy wild controller route that’s not recommended for RESTful applications.

Note: This route will make all actions in every controller accessible via GET requests.

match ‘:controller(/:action(/:id))(.:format)’

end[/quote]
No i tutaj nie wiem za bardzo co mam wpisać, rozumiem, że ustalam tutaj stronę początkową?

I kolejna sprawa (3):
Create your database
Run rake db:create to create your database. If you’re not using SQLite (the default), edit config/database.yml with your username and password.

[quote]# SQLite version 3.x

gem install sqlite3

Ensure the SQLite 3 gem is defined in your Gemfile

gem ‘sqlite3’

development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000

Warning: The database defined as “test” will be erased and

re-generated from your development database when you run “rake”.

Do not set this db to the same as development or production.

test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000

production:
adapter: sqlite3
database: db/production.sqlite3
pool: 5
timeout: 5000[/quote]
mam ustalić dla bazy danych użytkownika i hasło, tak?
username: root
password:xxxxx
host:localhost
a co oznacza “pool” i “timeout”?

I jeszcze jedno pytanie:
Czy w ROR bazy danych tworzy się tylko za pomocą polecenia “rake”?
nie np. za pomocą języka MySQL:

CREATE DATABASE xx (
xx INT NOT NULL,
)

?

Tak, nawet masz tam ładny komentarz odnoszący się do strony głównej. Jak załadować stronę? Najłatwiej stworzyć kontroler i przekierować tam

root to: 'controller#action'

Jeśli w twoim mysql jest użytkownik i hasło, to tak, w przeciwnym wypadku pozostaw odpowiednie pola po prostu puste.

Tak. Generalnie tak. Sam trochę wyżej sobie odpowiedziałeś, jak stworzyć bazę danych. Żadnych własnych mysqli na tym etapie, wszystko ogarną Ci migracje Railsów. Może kiedyś ci się przyda własne zapytanie SQL, do tego czasu będziesz już jednak wiedział, jak coś ugryźć bez pytań.

pool - liczba możliwych połączeń do bazy na proces

timeout - nazwa raczej mówi sama za siebie. Czas, w jakim Railsy próbują utworzyć połączenie z bazą, zanim zostanie ono odrzucone ze strony aplikacji.

Generalnie zostaw tę książkę, bo coś Ci nie pomaga chyba.

:slight_smile:

Fajnie, że wróciłeś do rails :slight_smile:

Jeśli będziesz pisał aplikację skacząc na głęboką wodę, to pewnie skończysz frustrując się, a nie pisząc kod. Nie wiem co jest w tej książce, ale imho, żeby zacząć lepsza jest wspomagana praktyka, dlatego po pierwsze zrób interaktywne tutoriale:


Po drugie, czytaj do upadku rails gudes:

Prawdopodobnie będą tam odpowiedzi na 80% twoich pytań. Ja sam ciągle je przeglądam mimo kilku lat na karku z railsami, bo okazuje się, że nawet po takim czasie można odkryć nowe rzeczy ;).

Jakbyś mimo to miał jeszcze wątpliwości, to pytaj tutaj. @konole z tego co widzę rozwiał Twoje obecne wątpliwości, więc chyba nie ma co dodawać.