gpt4 book ai didi

ruby-on-rails - Ruby on Rails 中的路由错误 "action: show"

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:14 25 4
gpt4 key购买 nike

我是 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com