在我看来,尝试向单独的控制器提交AJAX请求时遇到了一些麻烦。
我的AJAX请求表单如下所示:
我也试过sites_search_results_index_path
我的路线文件说的是正确的路线。
查看:
<div class="pull-left col-md-5">
<%= form_tag url: sites_search_results, remote: true do %>
<div class="input-group">
<%= content_tag :span, class: "input-group-btn" do %>
<%= button_tag type: "button", class: "btn btn-default dropdown-toggle", data: { toggle: "dropdown" } do %>
<%= content_tag :span, "", class: "caret" %>
<% end %>
<%= content_tag :ul, class: "dropdown-menu" do %>
<li class="btn btn-default">Domain</li>
<li class="btn btn-default">CLW</li>
<% end %>
<% end %>
<%= hidden_field_tag "search_by", "Domain" %>
<%= content_tag :span, class: "input-group-addon", id: "search_view" do %>
Filter
<% end %>
<%= text_field_tag "search_for", "", :class => "form-control" %>
<%= content_tag :span, class: "input-group-btn" do %>
<%= button_tag "Search", class: "btn btn-default" %>
<% end %>
</div>
<% end %>
</div>
控制器:
class SitesSearchResultsController < ApplicationController
def index
field = "Domain"
@results = Domain.where()
respond_to do |format|
format.js # do ajax action
end
end
end
路线:
resource :sites_search_results do
post 'index'
end
# also tried with no result:
#post "sites_search_results/index"
rake routes
有:
sites_search_results POST /sites_search_results/index(.:format) sites_search_results#index
POST /sites_search_results(.:format) sites_search_results#create
结果是:
undefined local variable or method `sites_search_results'
任何想法会导致什么?我见过其他人有这个问题,但我已经设置了根路径进入状态页面。而且我没有看到任何试图发布到root的内容。如果需要其他任何帮助,请告诉我。并提前感谢!
答案 0 :(得分:0)
看起来form_tag网址应为:
.one-fourth {
width: 31%;
float: left;
}
@media only screen and (max-width: 767px) and (min-width: 480px){
.one-half, .one-third, .one-fourth {
margin: 0 0 0 3.44%;
width: 33%;
float: left;
}
}
或者
<%= form_tag url: sites_search_results_path, remote: true do %>
从命令行运行'rake routes',看看你是否有'sites_search_results'或'sites_search_results_index'。我在猜测前者。
另外,请尝试从以下位置更改路线定义:
<%= form_tag url: sites_search_results_url, remote: true do %>
简单来说,
resource :sites_search_results do
post 'index'
end
最后,你需要使用POST吗?索引方法通常是GET,在这种情况下,您将发布到get。
答案 1 :(得分:0)
您必须在form_tag中提供方法,如下所示: -
<%= form_tag url: sites_search_results,:method=>'post', remote: true do %>