我在客户/ 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 –