我正在开发一个 Rails 应用程序。一个非常奇怪的问题让我发疯。
表单(方法是 get)没有传递参数。它仅在开发模式下发生。所有浏览器都会发生这种情况。我用一个简单的模拟视图对其进行了测试,但同样的问题发生了。日志显示参数没有传递。
class ItemsController < ApplicationController
def index
@items = Item.by_store_id(params[:store_id]).by_keyword(params[:keyword]).include_inactive(params[:include_inactive]).order("manufacturer_part_no").paginate :per_page => 50, :page => params[:page]
end
end
[View]
= form_tag({:action => :index}, :method => 'get') do
Store
= select_tag :store_id, options_for_select(Store.order("id").map { |i| [i.name, i.id]}.unshift([nil, nil]), params[:store_id].to_i)
%br
Title/Item No.
= text_field_tag :keyword, params[:keyword]
%br
= check_box_tag :include_inactive, '1', (params[:include_inactive].to_i == 1)
Include Ended Items
%br
= submit_tag "Find"
您认为造成问题的原因是什么?
谢谢。
山姆
我发现了导致问题的原因:
我的开发服务器上有一个目录-public/items,该目录不在git中。
%p This doesn't work!
= form_tag("/items", :method => 'get') do
= text_field_tag :data, params[:data]
= submit_tag "Submit"
%p This works.
= form_tag("/items/", :method => 'get') do
= text_field_tag :data, params[:data]
= submit_tag "Submit"
在这种情况下,训练斜线会有所不同。