嗨,我在尝试新记录时遇到问题,它显示一条错误消息,该错误消息在我的代码中不存在- 错误消息-
undefined method `user_cruds_path' for #<#<Class:0x00007f403e3162f0>:0x00007f403e3527a0>
Did you mean? user_crud_path
Extracted source (around line #8):
<h2>Create User</h2>
<%= form_for(@users) do |f| %>
<%= render(:partial => 'form', :locals => {:f => f}) %>
Rails.root: /home/ayan/Desktop/ror/q
Application Trace | Framework Trace | Full Trace
app/views/user_crud/new.html.erb:8:in `_app_views_user_crud_new_html_erb___1837862909000615994_69956949154020'
Request
Parameters:
None
Toggle session dump
_csrf_token: "DChk63/c8Jl1+JamtZiB03rFYMC/kybhyZr0/JixXDo="
flash: {"discard"=>[], "flashes"=>{"notice"=>"UserCrud updated successfully."}}
session_id: "aa128a12236d1d8d94061ed5de21d7f1"
令人惊讶的是,它发出了其他一些请求消息,但是使用URL路径帮助程序“ user_cruds_path” 的预期方法调用不存在-已更正。 我已经重新启动服务器,但是有同样的问题
这是我的控制器类-
class UserCrudController < ApplicationController
def create
# Instantiate a new object using form parameters
@users = UserCrud.new(users_params)
#@users=UserCrud.new(:name=>"Ayan",:email=>"ac@gmail.com")
# Save the object
if @users.save
# If save succeeds, redirect to the index action
flash[:notice] = "UserCrud created successfully."
redirect_to("/user_crud/index/")
else
# If save fails, redisplay the form so user can fix problems
render('new')
end
end
def new
@users = UserCrud.new({:name => 'Default',:email=>'deault@domain.ext'})
end
我的新记录创建视图:(new.html.erb)
<% @page_title = "New User" %>
<%= link_to("<< Back to List", "/user_crud/", :class => 'back-link') %>
<div class="users new">
<h2>Create User</h2>
<%= form_for(@users) do |f| %>
<%= render(:partial => 'form', :locals => {:f => f}) %>
<div class="form-buttons">
<%= f.submit("Create User") %>
</div>
<% end %>
</div>
routees.rb
resources :user_crud do
member do
get :delete
end
end
很奇怪,看到错误消息所引用的路径名根本不存在, 非常感谢您的帮助。
答案 0 :(得分:0)
该错误在表格上,您未指定正确的路径。如果未设置此选项,Rails将查找“默认路径”,在这种情况下为static_assert
答案 1 :(得分:0)
form_for(@users,url:“ / user_crud /”)可以工作,但是如果有人建议什么是合适的URL帮助器"/user_crud/"
编辑:
我从Marcelo的Comment中得到了它,并通过命令rails routes
找到了路线
并发现user_crud_index_url
的URL帮助器为"/user_crud/"
所以最后的答案是:
form_for(@users,url: user_crud_index_url)