在我的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