我在客戶/ index.json.jbuilder基本index.json.jbuilder文件:Rails的.json.jbuilder刷新
json.array!(@clientsAPI) do |client|
json.extract! client, :year, :business_name
end
當我在我看來提交表單,該@clientsAPI
在更新clients_controller的索引方法。但是,index.json.jbuilder不會更新,並且會保留舊的@clientsAPI
值(表單提交之前)。
我怎樣才能得到@clientsAPI
在表單刷新後在index.json.jbuilder中更新?
clients_controlled代碼:
def index
@clients = Client.all
begin
@year_filter = params[:c][:year]
rescue
@year_filter = ["2016"]
end
@clientsAPI = @clients.where(year:@year_filter)
render 'index'
end
客戶/ index.html.erb形式發送到上面顯示的指數方法:
<%= form_for :c, url:clients_path, method: :get" do |f| %>
<%= f.select :year, options_for_select(@years),{onchange: "this.form.submit();"} %>
<% end %>
貴的形式提交(創建/更新等),什麼樣的行動?您可以顯示該操作的控制器代碼,以及相應的create.json.jbuilder/update.json.jbuilder - 我猜測在該操作中沒有設置「@ clientsAPI」變量。 –
我添加了控制器代碼。表單被路由到索引方法的'GET'請求。 Rails中的所有更新都很好,但由於某些原因,index.json.jbuilder中的@clientsAPI在表單提交時並未更新。任何想法在這裏看什麼? jbuilder是否應該更新表單提交? – HoosierCoder
您的表單是否提交json請求或html?它需要用'format:'json''提交,然後你必須確保你在你的控制器中響應json格式:'respond_to do | format | ... etc'。我不確定你的'export_grid_if_requested'塊是幹什麼的,但是如果你到達那裏只會呈現html響應,而不是index.json.jbuilder –