首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >索引中form_for的未定义方法"cmdb_searches_path“

索引中form_for的未定义方法"cmdb_searches_path“
EN

Stack Overflow用户
提问于 2015-06-04 13:00:36
回答 2查看 35关注 0票数 1

我有一个cmdbs_controller.rb,里面有索引和定义的cmdb资源路由:

代码语言:javascript
复制
def index
  @cisearch = CmdbSearch.new
end

我还有一个cmdb_search模型,这是搜索表单的模型(空)。在我的index.html.erb中,我想像这样加载form_for:

代码语言:javascript
复制
<%= form_for @cisearch, remote:true  do |f| %>
...some code..           
<% end %>

我以前对另一个页面做过这样的搜索,但现在我得到了一个错误:

代码语言:javascript
复制
undefined method `cmdb_searches_path'

编辑:没有cmdb_search控件,cmdb_model是为建立搜索表单而创建的,只是暂时使用。一个成功的例子:我以前就是这样做的,它成功了:

代码语言:javascript
复制
 #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

然后我有了搜索模型。在requests/index.html.erb中,我有:

代码语言:javascript
复制
<%= form_for @search, remote: true do |f| %>
  .. some code 
<% end %>

其工作方式是,我在requests_controller中创建了一个搜索模型实例,以便能够创建form_for @search。我没有定义任何具体的路由,只定义了资源路由。这在以前是有效的,但对于这一次它不起作用。

EN

回答 2

Stack Overflow用户

发布于 2015-06-04 14:20:33

因为您是从index操作呈现表单,所以它不知道create操作。将form_for修改为:

代码语言:javascript
复制
 form_for @cisearch, :url => your_create_action,remote:true
票数 0
EN

Stack Overflow用户

发布于 2015-06-04 14:32:25

resources :cmdb_searches添加到您的routes.rb

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30635256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档