"contacts", :id=>nil} 缺少必需的键:[:id]-6ren"> "contacts", :id=>nil} 缺少必需的键:[:id]-我知道有很多人问同样的问题,但我就是找不到解决方案。 当我尝试编辑联系人时发生此错误。这意味着我需要在数据库中查询当前联系人。 我的编辑方法是这样的 def edit @contact = C-6ren">
gpt4 book ai didi

ruby-on-rails - 没有路由匹配 { :action= >"show", :controller= >"contacts", :id=>nil} 缺少必需的键:[:id]

转载 作者:行者123 更新时间:2023-11-29 13:48:09 30 4
gpt4 key购买 nike

我知道有很多人问同样的问题,但我就是找不到解决方案。

当我尝试编辑联系人时发生此错误。这意味着我需要在数据库中查询当前联系人。

我的编辑方法是这样的

def edit
@contact = Contact.active
.select("phone_number, email, first_name, last_name, address1, address2, city, state, zipcode, country, gender, birthday, optional1, optional2, optional3, optional4, optional5, string_agg(tags.name,',') as tags")
.where("contacts.organization_id = ? and contacts.id = ?", current_users_user.organization_id, params[:id])
.joins("INNER JOIN tag_contacts on tag_contacts.contact_id = contacts.id")
.joins("INNER JOIN tags on tags.id = tag_contacts.tag_id")
.group("contacts.id,phone_number, email, first_name, last_name, address1, address2, city, state, zipcode, country, gender, birthday, optional1, optional2, optional3, optional4, optional5")
.first
end

当我点击编辑按钮时,我收到了这个错误。

No route matches {:action=>"show", :controller=>"contacts", :id=>nil} missing required keys: [:id]

但是,当我将查询从终端窗口复制并粘贴到 Postgres 时,查询会返回一条完全符合我需要的记录。

这是我的联系方式

resources :contacts, :only => %w(index new edit show update create destroy) do
get 'import', on: :collection
collection {post :exec_import}
end

向我询问您可能需要的任何额外信息!非常感谢!

编辑

我是这样调用它的

<%= form_for @contact, url: contact_path(@contact) do |f| %>

这些是我的路线!

enter image description here

编辑 2

日志! (这是当你点击编辑按钮时运行的)

enter image description here

最佳答案

您无需传递 url,Rails 会判断该路径是用于创建记录还是更新记录。

对于 newedit 操作,您必须使用相同的 _form

<%= form_for @contact do |f| %>

关于ruby-on-rails - 没有路由匹配 { :action= >"show", :controller= >"contacts", :id=>nil} 缺少必需的键:[:id],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45082534/

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