我是 RoR 的新手,我正在尝试制作主数据: 用户 -卢格(地点)
我的路线.rb
resources :users do
resources :lugars
end
我的 Controller 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 View “show.html.erb”中创建并清空了文件,但是当我进入页面时总是得到:
Routing Error
No route matches {:action=>"show", :controller=>"lugars"}
有什么想法吗?提前致谢
最佳答案
您在没有 ID/对象的情况下调用 user_lugar_path
,因此它不知道要路由到哪个单独的资源。由于资源是嵌套的,您必须将 lugar
本身和它嵌套在下面的 user
传递给它:
link_to "Editar", user_lugar_path(@user, lugar)
您也可以简单地传递 link_to
对象:
link_to "Editar", [@user, lugar]
您可以在 Rails Guides on routing 中阅读更多相关信息.
关于ruby-on-rails - Ruby on Rails 中的路由错误 "action: show",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9660136/