[前][次][番号順一覧][スレッド一覧]

rails:3949

From: dezawa <dezawa@a...>
Date: Tue, 10 Dec 2013 16:13:10 +0900
Subject: [rails:3949] Re: URLからcontroller名を省きたい

ちゃんとテストはしていませんが

> ②
> routes.rbにて汎用的にできないか。

routes.rbにて

ActionController::Routing::Routes.draw do |map|

  category_urls = ArticleCategorie.all.map(&:category_url)

  category_urls.each{|category|
     map.connect "/#{category}/:id" ,
           :controller => :articles,
           :action => category
  }

でどうかなぁ。

「blockの最初で DBにアクセスしてもエラーにならずにサーバが
立ち上がる」所までは試しました。

                                       出沢
PS
なんか変かなぁ

  users = User.all.map{ |user| [user.id,user.login]}
  users.each{|id,login|
     map.connect "/#{login}" ,
           :controller => "users",
           :action => :show,
           :id => id
  }

で、 localhost:3000/dezawa でアクセスしてみると、controllerには
届いているのですが
  Processing UsersController#show ( ... ) [GET]
  Parameters: {"id"=>1}
    :
  Rendering template within layouts/application
  Rendering users/show
    :
ActionView::TemplateError (Called id for nil, which would mistakenly be
4 -- if you really wan
ted the id of nil, use object_id) on line #2 of
app/views/users/show.html.erb:
1: ユーザ別設定表
2: <% form_for(@user) do |f| -%>
3:   <%= f.error_messages %>
4: <% end %>
5: <%= link_to '修正', edit_user_path(@user) %>

@user が nilっぽい

localhost:3000/users/1 なら期待通りの表示。
Renderingまでは logは同じなのに。

試して駄目だったら忘れてください。



--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      3948 2013-12-10 06:16 [arakane@r...        ] URLからcontroller名を省きたい           
->    3949 2013-12-10 08:13 ┗[dezawa@a...         ]                                       
      3950 2013-12-11 04:30  ┗[arakane@r...        ]