【发布时间】:2015-06-04 05:00:35
【问题描述】:
我有一个 cmdbs_controller.rb,其中有索引并定义了 cmdb 资源路由:
def index
@cisearch = CmdbSearch.new
end
我还有一个 cmdb_search 模型,它是搜索表单(空)的模型。在我的 index.html.erb 中,我想像这样加载 form_for:
<%= form_for @cisearch, remote:true do |f| %>
...some code..
<% end %>
我之前已经对其他页面进行过这样的搜索,但现在我得到一个错误:
undefined method `cmdb_searches_path'
编辑: 没有cmdb_search 控制器,cmdb_model 是为构建搜索表单而创建的,它是暂时使用的。 有效的例子: 我以前就是这样做的,而且效果很好:
#requests_controller.rb
def index
if !user_signed_in?
redirect_to new_user_session_path
else
@requests = Request.search(params[:search]).order("#{sort_column} #{sort_direction}").where("payed = ?", false).order(created_at: :desc).paginate(per_page: 20, page: params[:page])
@search = Search.new
end
end
<%= form_for @search, remote: true do |f| %>
.. some code
<% end %>
它的工作方式是我在 requests_controller 中创建了一个搜索模型实例,以便能够创建 form_for @search。我没有定义任何特定的路线,只有资源路线。这以前有效,但对于这个它不起作用。
【问题讨论】:
-
在终端中运行
rake routes命令并在此处共享输出。还有你的routes.rb和cmdb_search_controller是什么?? -
你为cmdb_search添加路由了吗?
-
@user123,不,我想我只需要表单提交操作的路由。因为我没有为 requests_controller 添加任何特定路由
-
你要加
resources :cmdb_searches -
@yerassyl 有效吗?
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2