HY 我尝试在我的应用程序上创建一个简单的搜索
calendar.rb
def self.search(search_condition)
search_condition = "%" + search + "%"
find( :all, :conditions => ['city like ?', search_condition])
end
calendar_controller.rb
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
部分 _search.html.erb
<%= form_tag root_path, :method => 'get' do %>
<%= text_field_tag :search, params[:search_condition], :id => 'search_field' %>
<%= submit_tag "Search", :name => nil %>
<% end %
当我尝试收到此错误时:
The request method POST is inappropriate for the URL /.
我不明白为什么?
佣金路线
user_calendars GET /users/:user_id/calendars(.:format) calendars#index
POST /users/:user_id/calendars(.:format) calendars#create
new_user_calendar GET /users/:user_id/calendars/new(.:format) calendars#new
edit_user_calendar GET /users/:user_id/calendars/:id/edit(.:format) calendars#edit
user_calendar GET /users/:user_id/calendars/:id(.:format) calendars#show
答案 0 :(得分:0)
您的表单标记需要路由到日历索引操作。像这样:
<%= form_tag(user_calendars_path(@user), :method => 'get') do %>
<%= text_field_tag :search, params[:search_condition], :id => 'search_field' %>
<%= submit_tag "Search", :name => nil %>
<% end %>
编辑:想出来,这是真正的问题:
您的日历#create路线与日历#index的路线相同。
/users/:user_id/calendars(.:format)
您需要更改routes.rb文件以区分它们。传统上,复数路径转到索引操作。