gpt4 book ai didi

ruby-on-rails - 根据下拉框 3 中定义的值过滤索引页面的值

转载 作者:行者123 更新时间:2023-12-04 05:34:22 24 4
gpt4 key购买 nike

我是 Rails 的新手,我正在尝试根据索引页面上的下拉框选择的值来过滤我的索引页面例如,在我的索引页面中,如果用户从下拉列表中选择一个值,我有一个显示员工姓名的下拉框,索引页面的值应使用该员工姓名进行过滤。注意-员工姓名是一个交叉引用字段

我的 Controller 看起来像

def index

@complaints = Complaint.paginate(:page => params[:page], :per_page => 10)

respond_to do |format|
format.html # index.html.erb
format.json { render :json => @complaints }
end
end

我的索引 View 看起来像

<%= select("employee", "employee_id", Employee.all.collect {|p| [ p.fullname, p.id ] }, { :include_blank => true }) %>

最佳答案

我已经尝试用我能从你的问题中理解的任何内容来回答,并且我假设您不想通过 ajax 调用进行过滤,并且您的投诉表包含一个名为 employee_id 的列。

在你的 index_view 添加

<%= form_tag 'controllers_index_path' , :method => "get", :id=> 'filter_employees_form' do %>
<p>
<%= select_tag 'employee_id', options_for_select(Employee.all.collect {|p| [p.fullname, p.id ] }, :selected => params[:employee_id]), :prompt => 'Select', :id => 'filter_employees' %>
</p>
<% end %>

将以下代码添加到 javascript 文件中或将其添加到索引页面的末尾。

$(document).ready(function(){
$('#filter_employees').change(function(){
$('#filter_employees_form').submit();
})
})

在controller.rb中

def index

@complaints = Complaint.get_complaints(params).paginate(:page => params[:page], :per_page => 10)

respond_to do |format|
format.html # index.html.erb
format.json { render :json => @complaints }
end
end

在 complaint.rb(model)

def self.get_complaints(params)
conditions = ['']
conditions = ['complaints.employee_id = ?', params[:employee_id]] if params[:employee_id]
self.where(conditions)
end

希望这就是您要找的。

关于ruby-on-rails - 根据下拉框 3 中定义的值过滤索引页面的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8427415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com