我有一個帶有過濾器的 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
我希望我的問題很清楚。謝謝
uj5u.com熱心網友回復:
您可以傳入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 %>
單選按鈕
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/471103.html
上一篇:在編輯頁面上未選擇屬性
下一篇:我如何停止rails服務器?
