我正在尝试生成一个报告,其中下拉列表中有3个静态值,当我们选择一个值并单击“提交”时,必须生成此值的代码。
这是我的报告控制器:
def create_report
@report = MyReport.create_report(params[:id], params.merge(account: current_account, user: current_user))
@report.execute
end
在app / views / reports / report / _report.html.haml中:
= content_for :report_filters do
.form-group
= select_tag :param_name, options_for_select([['A data', 'A'], ['B data', 'B']], params[:param_name])
这是app / reports文件夹中的.rb文件:
class TransactionReport < MyReport
def execute
@items = []
if params[:param_name] == "A"
daily_items = A.by_account(@account).active.includes(:company_name, :emp_name, :address).where('date(txn_date) = ? ', current_date)
@items << Item.new(items: daily_items, date: current_date) unless daily_items.empty?
elsif params[:param_name] == "B"
daily_items = B.by_account(@account).active.includes(:company_name, :emp_name, :primary_sales_rep).where('date(txn_date) = ? ', current_date)
end
end
end
显示错误:
未定义的局部变量或方法`params'代表#
如果选择了A,请告诉我如何编写,如果不使用Javascript则选择B或C。