在我的项目中我得到了一个视图,在这个视图中我有一个这样的日期输入:
<%= form_tag installations_path, :method => :csv, :class => 'form-search' do %>
<%= select_date(date = Date.current, options = {}, html_options = {}) %>
<%= submit_tag "Save" %>
<% end %>
在我的控制器安装中,我得到了一个名为&#34; csv&#34;的方法。这个方法生成一个Csv。例如:
def csv
@consumption = current_user.get_consumptions(params[:year])
respond_to do |format|
format.html
format.csv { send_data @consumption.to_csv }
end
end
当我执行视图时,我收到此错误:
param is missing or the value is empty: installation
问题是在我的installed_params中我需要(:安装)因为我在其他方法中使用对象安装。
def installation_params
params.require(:installation).permit(:year,...)
end
解决此问题的最佳方法是什么?
答案 0 :(得分:1)
如果您将csv生成为GET请求,请更改代码
从:
<%= form_tag installations_path, :method => :csv, :class => 'form-search' do %>
为:
<%= form_tag csv_installations_path, :method => :get, :class => 'form-search' do %>
确保csv_installations_path
存在。
然后,如果您的输入名为year
,则可以将params[:year]
参数设为year
。
最后,你没有在csv方法中使用任何install_params
希望它对你有所帮助。