From 0aebbcbe60a03e89ac23072daf632ea592d2fbb8 Mon Sep 17 00:00:00 2001 From: Jacques COUVREUR Date: Sun, 3 Jun 2012 16:35:59 +0200 Subject: [PATCH] Create route for users/:u/series/:s/figures/:f - #7. --- app/controllers/user_figures_controller.rb | 13 ++++++++++-- app/views/user_figures/_form.html.erb | 2 +- app/views/users/index.html.erb | 2 ++ config/routes.rb | 23 ++++++++++++++++++++-- 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/app/controllers/user_figures_controller.rb b/app/controllers/user_figures_controller.rb index 1e1c7cc..6d6776e 100644 --- a/app/controllers/user_figures_controller.rb +++ b/app/controllers/user_figures_controller.rb @@ -1,4 +1,13 @@ class UserFiguresController < ApplicationController + + def user_figure_by_code_or_id(params) + id = params[:id] + figure_code = params[:figure_code] + return UserFigure.find(params[:id]) if id + return UserFigure.find_by_figure_code( params[:figure_code] ) if figure_code + return UserFigure.find_by_figure_code( "#{params[:series_index]}-#{params[:figure_index]}" ) + end + # GET /user_figures # GET /user_figures.json def index @@ -13,7 +22,7 @@ def index # GET /user_figures/1 # GET /user_figures/1.json def show - @user_figure = UserFigure.find(params[:id]) + @user_figure = self.user_figure_by_code_or_id(params) respond_to do |format| format.html # show.html.erb @@ -34,7 +43,7 @@ def new # GET /user_figures/1/edit def edit - @user_figure = UserFigure.find(params[:id]) + @user_figure = self.user_figure_by_code_or_id(params) end # POST /user_figures diff --git a/app/views/user_figures/_form.html.erb b/app/views/user_figures/_form.html.erb index 678d2f3..9fb02b2 100644 --- a/app/views/user_figures/_form.html.erb +++ b/app/views/user_figures/_form.html.erb @@ -17,7 +17,7 @@
<%= f.label :figure_code %>
- <%= f.number_field :figure_code %> + <%= f.text_field :figure_code %>
<%= f.label :count %>
diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb index 8affc53..62ce779 100644 --- a/app/views/users/index.html.erb +++ b/app/views/users/index.html.erb @@ -2,6 +2,7 @@ + @@ -17,6 +18,7 @@ <% @users.each do |user| %> + diff --git a/config/routes.rb b/config/routes.rb index 222d23f..d8cd247 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,13 +1,32 @@ Legomni::Application.routes.draw do + + # match ':controller(/:action(/:id))' + # match ':controller/:action/:id/:user_id' + resources :devices resources :user_figures resources :figures - resources :series + resources :series do + resources :figures + end + + # /users/1/figures/3 + # match "/users/:user_id/figures/:figure_code" => redirect("%{scope}_authenticate/create") + match "users/:user_id/series/:series_index/figures/:figure_index" => redirect("/user_figures/show/%{user_id}/%{series_index}/%{figure_index}") + match "users/:user_id/figures/:figure_code" => redirect("/user_figures/show/%{user_id}/%{figure_code}") + resources :users do + resources :user_figures + resources :devices + + # get 'preview', :on => :member + # get 'search', :on => :collection + end - resources :users + match ":controller/:action/:user_id/:figure_code" + match ":controller/:action/:user_id/:series_index/:figure_index" # The priority is based upon order of creation: # first created -> highest priority.
ID Login Password Firstname
<%= user.id %> <%= user.login %> <%= user.password %> <%= user.firstName %>