Ruby on rails 没有路由匹配{:action=>;show";,:controller=>;contacts";,:id=>;nil}缺少必需的键:[:id]
我知道有很多人问同样的问题,但我就是找不到解决办法 尝试编辑联系人时发生此错误。这意味着我需要查询数据库中的当前联系人 我的编辑方法如下所示Ruby on rails 没有路由匹配{:action=>;show";,:controller=>;contacts";,:id=>;nil}缺少必需的键:[:id],ruby-on-rails,postgresql,Ruby On Rails,Postgresql,我知道有很多人问同样的问题,但我就是找不到解决办法 尝试编辑联系人时发生此错误。这意味着我需要查询数据库中的当前联系人 我的编辑方法如下所示 def edit @contact = Contact.active .select("phone_number, email, first_name, last_name, address1, address2, city, state, zipcode, country, gender, birthd
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| %>
这就是我的路线
编辑2
日志!(这是单击“编辑”按钮时运行的操作)
您发布的错误路由到
show
操作,而不是edit
操作
您可能需要将链接更改为edit
操作,并且需要在编辑联系人链接中传递联系人ID,如下所示(假设您在@contact
变量中需要联系人):
您发布的错误路由到
显示
操作,而不是编辑
操作
您可能需要将链接更改为edit
操作,并且需要在编辑联系人链接中传递联系人ID,如下所示(假设您在@contact
变量中需要联系人):
您不需要传递
url
Rails将确定路径是否用于创建或更新记录
对于新建和编辑操作,必须使用相同的表单
<%= form_for @contact do |f| %>
您不需要传递url
Rails将确定路径是否用于创建或更新记录
对于新建和编辑操作,必须使用相同的表单
<%= form_for @contact do |f| %>
编辑链接有问题,请发布代码进行编辑link@DeepakMahakale我添加了我的路线和编辑链接编辑链接有问题,请发布代码进行编辑link@DeepakMahakale我添加了我的路线和编辑链接。我所有的其他编辑都是这样做的,它们都可以工作。。我不知道为什么它不起作用。您的方法也给了我错误。从您的日志中,我认为@contact
变量的值是nil
。通过在控制台中将p@contact
作为p@contact
打印,检查@contact
操作中的@contact
变量中存在的值。我的所有其他编辑都是以这种方式完成的,并且都有效。。我不知道为什么它不起作用。您的方法也给了我错误。从您的日志中,我认为@contact
变量的值是nil
。通过在控制台中将p@contact
打印为p@contact
来检查@contact
操作中的@contact
变量中存在的值。我收到一个不同的错误表单中的第一个参数不能包含nil或为空
您应该将其设置为@contact=contact.new
在新操作和@contact=contact.find(参数[:id])
在编辑操作中,您可以发布日志吗?如果是其他原因导致了问题,请发布日志。我得到一个不同的错误表单中的第一个参数不能包含nil或为空
您应该将其设置为@contact=contact.new
在新操作中和@contact=contact.find(参数[:id])
在编辑操作中,您是否可以将日志也张贴出来,好像是其他原因导致了问题