在我的RoR應用程序中,我有一個表單,用戶可以通過名字搜索他們的聯繫人,並選擇他們想要發送電子郵件的聯繫人。我的問題是,在搜索說「Tom」並選擇「Tom」複選框後,如果他們重置搜索以顯示所有複選框「Tom」不再被選中。Ruby on Rails:在搜索後保留複選框
有人可以告訴我這可以排序嗎?
視圖中的代碼是:
<div class="panel-body">
<%= form_tag '/emails/contact_search', :method => 'get' do %>
<p>
<%= text_field_tag :search_string, params[:search_string], :placeholder => "Search by firstname" %>
<%= submit_tag "Search" %>
</p>
<% end %>
<%= form_for(@email) do |f| %>
<fieldset>
<div class="form-group">
<label>From Email Address</label></br>
<% @useraccounts.each do |useraccount| %>
<%= f.radio_button :account_id, useraccount.account_id, :checked => false %>
<%= f.label :account_id, useraccount.account.email, :value => "true" %><br>
<% end %>
</div>
<div class="form-group">
<label>Contacts</label></br>
<%= f.collection_check_boxes :contact_ids, @contacts, :id, :fullname, checked: @selected_contact_ids %>
</div>
<div class="form-group">
<label>Groups</label></br>
<%= f.collection_check_boxes :group_ids, Group.where(user_id: session[:user_id]), :id, :name ,{ prompt: "name" } %>
</div>
<div class="form-group">
<label>Attachment</label>
<%= f.file_field :attachment, :size => 42 %><br>
</div>
<div class="actions">
<%= f.submit "Continue", {:class => 'btn btn-primary '} %>
<%= render "/error_messages", :message_header => "Cannot save: ", :target => @email %>
</div></br>
</fieldset>
<% end %>
</div>
搜索的控制器代碼:
def contact_search
@email = Email.new(session[:email_params])
@email.current_step == session[:email_step]
@useraccounts = Useraccount.where(user_id: session[:user_id])
@contacts = Contact.contact_search(params[:search_string])
if @contacts.empty?
flash[:notice] = "There are no emails with that subject"
@contacts = Contact.all
end
render :action => "new"
end
private
def email_params
params.require(:email).permit(:subject, :message, :account_id, { contact_ids: [] }, { group_ids: [] }, :attachment)
end
和模型:
def self.contact_search(search_string)
self.where("firstname LIKE ?", search_string)
end
我不知道如何在用戶搜索其他內容或重新設置搜索結果後選中某個複選框,是否有人可以提供一些信息如何實現這一目標?
請不要標記任何問題,這純粹是一個Rails問題,而不是Ruby。 – Iceman
我正在使用Ruby on Rails 4,問題是關於複選框,我覺得這些標籤是相關的。 –
不,您標記了Ruby和Rails3,這是無關緊要的。對於Rails4,這不是一個問題,只是在討論這個方法。 – Iceman