2013-10-25 128 views
0

我尝试在我的objet日历中搜索某些内容,但是当我点击提交时,我总是收到此错误。 我真的不明白为什么?轨道搜索嵌套资源

请求方法POST不适合URL /。

_search.html.erb

<%= form_for user_calendars_path([@user, @calendar]), :method => 'get' do %> 
    <%= text_field_tag :search, params[:search_condition], :id => 'search_field' %> 
     <%= submit_tag "Search" %> 
    <p>hello </p> 
<% end %> 

calendar_controller

def index 
    @search = @user.calendar.search(params[:search_condition]) 
    @content_calendars = @user.calendar.all 
    @content_calendars_by_dates = @content_calendars.group_by(&:published_on) 
    @date = params[:date] ? Date.parse(params[:date]) : Date.today 
    end 

route.rb

resources :users do 
resources :calendars 
end 

回答

0

试试这个:

<%= form_tag user_calendars_path(@user, @calendar), :method => 'get' do %> 
    <%= text_field_tag :search, params[:search_condition], :id => 'search_field' %> 
    <%= submit_tag "Search" %> 
    <p>hello </p> 
<% end %> 
+0

如果我尝试,我得到没有路线匹配{:控制器=>“日历”}。为什么我需要使用form_tag,因为默认情况下,form_tag使用post而不是get? – zyriuse

+0

嗨zyriuse,根据你的路线,你应该定义CalendersController。 form_tag是因为你没有使用任何依赖于form_builder的属性,并且通常我们使用form_for作为对象。 – Kuldeep

+0

我如何定义CalendarsController?感谢您的关于form_tag和form_for – zyriuse