为什么视图没有刷新

时间:2019-08-19 22:04:00

标签: ruby-on-rails rendering

Ruby 2.5.1p57 Rails 5.2.3

基本上,我有Controller,其中有我要从表单调用的方法'search'

IF OBJECT_ID('tempdb..#temptable') IS NOT NULL DROP TABLE #temptable

CREATE TABLE #temptable ( [VehicleKey] int, [RegistrationKey] int, [RegisteredOperatorKey] int, [StartDate] date )
INSERT INTO #temptable
VALUES
( 700090, 550983, 207287, N'2018-07-31T00:00:00' ), 
( 700090, 1513637, 276879, N'2018-12-31T00:00:00' ), 
( 700090, 1513637, 341604,  N'2019-02-28T00:00:00' )

SELECT * FROM #temptable

几乎所有东西都按我想要的工作,除了'render'不会渲染'search'我什么也没有得到,也没有。我有这样的“搜索”

def search
    Warehouse.where("product = '#{params[:product]}'").find_each do |warehouse|
      Area.where("warehouse_id = #{warehouse.id} and post_codes like '%#{params[:postcode]}%'").find_each do |area|
        PriceList.where("area_id = #{area.id} and number_of_pallets = #{params[:number_of_palette]}").find_each do |priceList|
          puts "Warehouse  #{warehouse} Area: #{area} PriceList #{priceList}"
          render_pricing warehouse
        end
      end
    end
  end

  def render_pricing(warehouse)
    p warehouse # everything is here, I can see data which I want
    @warehouse = warehouse
    render 'search'
  end

问题是网址没有更改并且我的“搜索” html没有加载新数据。我不确定自己做错了什么,原因是我还有其他5种类似的方法可以正常工作,但是我无法修复。

1 个答案:

答案 0 :(得分:1)

我认为remote: true默认添加的form_with中的问题。

<%= form_with(url: warehouse_search_path, method: "get",  :id => "search", local: true)  do %>

必须解决您的问题。 https://api.rubyonrails.org/v5.1/classes/ActionView/Helpers/FormHelper.html#method-i-form_with