我在 blogs_controller 中的帖子可以通过天赋选择。可以通过下拉菜单选择风格。当我选择任何其他选项时,页面正在使用 ajax 重新加载并且一切正常,但是如果我按下提交按钮,它应该发送空 :flair
值并再次呈现页面和表格,但它发送,我查看如何选择所有帖子,但没有任何变化,为什么?
我真的无法理解。
#blog_controller.rb
def index
@blogs = Blog.order("created_at desc")
if !(params[:flair].blank?)
@blogs = @blogs.where(:flair => params[:flair])
end
respond_to do |format|
format.html
format.json
end
end
def blog_params
params.require(:blog).permit(:name, :title, :content, :flair)
end
#index.html.haml
%h1 Listing blogs
= form_with method: :get do |f|
= f.select :flair, @flairs, {},{onchange: "this.form.submit()"}
= f.submit 'Clear', params: {flair: ""}
= render 'table'
%br
#_table.html.haml
%table#table
%thead
%tr
%th Name
%th Title
%th Content
%th Flair
%tbody
- @blogs.each do |blog|
%tr
%td= blog.name
%td= blog.title
%td= blog.content
%td= blog.flair
%td= link_to 'Show', blog
%td= link_to 'Edit', edit_blog_path(blog)
%td= link_to 'Destroy', blog, method: :delete, data: { confirm: 'Are you sure?' }
答案 0 :(得分:0)
这是因为您的请求正在等待 JS 响应,并且由于您没有在控制器中处理它,所以它默认为 HTML。除非您在提交时重新加载页面,否则 HTML 不会重新呈现,因此即使调用了控制器方法,UI 中也“没有任何反应”。