提交Rails过滤器后如何使单选按钮不清晰
How to make radio buttons not clear after submitting Rails filter
我有一个带过滤器的 Rails 应用程序。该过滤器由两个单选按钮组成。如果选择单选按钮“en”,则显示英语用户,与“es”和西班牙语用户相同。
这很好用。我可以过滤英语和西班牙语用户。但是,当提交表单时,选中的单选按钮被清除。
如何使选中的单选按钮在提交表单后仍然处于选中状态?
_filter.html.erb:
<%= form_with url: '/filter_users', method: :get do | form|%>
<%= form.radio_button :language, 'en', onclick: "this.parentNode.submit();"%>
<%= form.label :language_en, 'en' %>
<%= form.radio_button :language, 'es', onclick: "this.parentNode.submit();" %>
<%= form.label :language_es, 'es' %>
<% end %>
控制器:
def filter_users
@users = User.all
@users = @users.filter_by_language(params[:language]) if params[:language].present?
end
型号:
class User < ApplicationRecord
scope :filter_by_language, ->(language) { where language: language }
end
我希望我的问题很清楚。谢谢
您可以在选项散列中传递 checked: true
以保留该值。
<%= form_with url: '/filter_users', method: :get do | form|%>
<%= form.radio_button :language, 'en', checked: params[:language] == 'en', onclick: "this.parentNode.submit();"%>
<%= form.label :language_en, 'en' %>
<%= form.radio_button :language, 'es', checked: params[:language] == 'es', onclick: "this.parentNode.submit();" %>
<%= form.label :language_es, 'es' %>
<% end %>
我有一个带过滤器的 Rails 应用程序。该过滤器由两个单选按钮组成。如果选择单选按钮“en”,则显示英语用户,与“es”和西班牙语用户相同。
这很好用。我可以过滤英语和西班牙语用户。但是,当提交表单时,选中的单选按钮被清除。
如何使选中的单选按钮在提交表单后仍然处于选中状态?
_filter.html.erb:
<%= form_with url: '/filter_users', method: :get do | form|%>
<%= form.radio_button :language, 'en', onclick: "this.parentNode.submit();"%>
<%= form.label :language_en, 'en' %>
<%= form.radio_button :language, 'es', onclick: "this.parentNode.submit();" %>
<%= form.label :language_es, 'es' %>
<% end %>
控制器:
def filter_users
@users = User.all
@users = @users.filter_by_language(params[:language]) if params[:language].present?
end
型号:
class User < ApplicationRecord
scope :filter_by_language, ->(language) { where language: language }
end
我希望我的问题很清楚。谢谢
您可以在选项散列中传递 checked: true
以保留该值。
<%= form_with url: '/filter_users', method: :get do | form|%>
<%= form.radio_button :language, 'en', checked: params[:language] == 'en', onclick: "this.parentNode.submit();"%>
<%= form.label :language_en, 'en' %>
<%= form.radio_button :language, 'es', checked: params[:language] == 'es', onclick: "this.parentNode.submit();" %>
<%= form.label :language_es, 'es' %>
<% end %>