2012-03-11 76 views
1

我是新與回報率,我試圖讓一個主datail: 用戶 -Lugar(地方)路由錯誤on Rails的「動作:秀」

我的routes.rb

resources :users do 
    resources :lugars 
    end 

我控制器lugars

class LugarsController < ApplicationController 
    def create 
    @user = User.find(params[:user_id]) 
    @lugar = @user.lugars.create(params[:lugar]) 
    redirect_to account_url 
    end 

    def destroy 
    @user = User.find(params[:user_id]) 
    @lugar = @user.lugars.find(params[:id]) 
    @lugar.destroy 
    redirect_to account_url 
    end 

    def edit 
    @user = User.find(params[:user_id]) 
    @lugar = @user.lugars.find(params[:id]) 
    end 

    def show 
    @user = User.find(params[:user_id]) 
    @lugar = @user.lugars.find(params[:id]) 
    end 

    def index 
    @user = User.find(params[:user_id]) 
    @lugar = @user.lugars.all 
    end 
end 

而且我認爲

.... 
    <% @user.lugars.each do |lugar| %> 
     <tr> 
     <td><%= lugar.nombre %></td> 
     <td><%= lugar.telefono %></td> 
     <td><%= lugar.direccion %></td> 
     <td><%= lugar.numero %></td> 
     <td><%= lugar.localidad %></td> 
     <td><%= lugar.provincia %></td> 
     <td><%= link_to "Editar", user_lugar_path %></td> 
     <td><%= link_to "Eliminar", [lugar.user , lugar], :method => :delete %></td> 
     </tr> 
    <% end %> 
.... 

我已經創建,並在我的lugars空文件查看「show.html.erb」但是當我進入頁面獲得永諾:

Routing Error 

No route matches {:action=>"show", :controller=>"lugars"} 

任何想法?在此先感謝

回答

4

您打電話user_lugar_path沒有ID /對象,所以它不知道路由到哪個單獨的資源。由於資源被嵌套,你必須通過它的lugar本身和user是嵌套在:

link_to "Editar", user_lugar_path(@user, lugar) 

你也可以簡單地傳遞link_to的對象:

link_to "Editar", [@user, lugar] 

你可以閱讀更多關於這​​。

+0

謝謝!路由錯誤消失,但現在當我嘗試輸入鏈接時,我有:模板丟失 缺少模板lugars/show,application/show with {:handlers => [:erb,:builder,:coffee],:formats => [:html],:locale => [:en,:en]}。 – 2012-03-12 00:08:58

+0

@AgustinSeifert你需要一個'app/views/lugars/show.html.erb'文件。 – 2012-03-12 00:10:23

+0

哦,我明白了。我的意見文件夾被命名爲「lugar」,而不是「lugars」非常感謝你! – 2012-03-12 00:14:32