Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails将记录从视图传递到控制器_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails将记录从视图传递到控制器

Ruby on rails Rails将记录从视图传递到控制器,ruby-on-rails,Ruby On Rails,在Rails 3应用程序中,我有一个包含搜索逻辑的视图。查看页面时,@events包含要显示的记录 查看代码: <% @events.each do |event| %> ... 以前,我使用params传递一个id-这是我第一次尝试传递列表 谢谢你的帮助 更新1 我将控制器更改为: def index8 @search = Event.search(params[:q]) @events = @search.result respond_to do |

在Rails 3应用程序中,我有一个包含搜索逻辑的视图。查看页面时,
@events
包含要显示的记录

查看代码:

<% @events.each do |event| %>
...
以前,我使用params传递一个id-这是我第一次尝试传递列表

谢谢你的帮助

更新1

我将控制器更改为:

  def index8
    @search = Event.search(params[:q])
    @events = @search.result
    respond_to do |format|
      format.html # index.html.erb
      format.xlsx
    end
  end
并将index8 view按钮用于:

<%= link_to "Excel", event_path("index8.xlsx"), :class => 'btn btn-warning' %>
“btn btn警告”%>
但是,我需要将搜索参数返回控制器

更新2

这起到了作用:

  <%= link_to "Excel", event_path("index8.xlsx", :q => params[:q]), :class => 'btn btn-warning' %>
params[:q]),:class=>“btn btn警告”%>

您可以将搜索参数传回控制器。或者更好的是,将导出作为搜索/索引的一部分(用作不同的格式)

然后,您可以在指定格式时使用搜索/索引URL:
=链接到“导出”,事件\u url(搜索:params[:search],格式::xlsx)


HTTP仅在视图/表单和服务器之间传递参数。Rails解析HTTP参数并构造参数散列,但不创建AR对象

您可以将搜索参数传回控制器。或者更好的是,将导出作为搜索/索引的一部分(用作不同的格式)

然后,您可以在指定格式时使用搜索/索引URL:
=链接到“导出”,事件\u url(搜索:params[:search],格式::xlsx)


HTTP仅在视图/表单和服务器之间传递参数。Rails解析HTTP参数并构造参数散列,但不创建AR对象

使用不同格式的相同搜索效果非常好!谢谢我认为它奏效了。但是,它实际上是将所有事件放入XLSX。我将公布我在问题中所做的。我如何通过按钮将搜索参数返回控制器?这起作用了`params[:q]),:class=>'btn btn warning'>`很高兴它起作用了。检查你的耙路线。如果导出是索引的一部分(而不是
index8
)-您应该能够使用
events\u path(q:params[:q])
。使用不同格式的相同搜索效果非常好!谢谢我认为它奏效了。但是,它实际上是将所有事件放入XLSX。我将公布我在问题中所做的。我如何通过按钮将搜索参数返回控制器?这起作用了`params[:q]),:class=>'btn btn warning'>`很高兴它起作用了。检查你的耙路线。如果导出是索引的一部分(不是
index8
)-您应该能够使用
events\u path(q:params[:q])
<%= link_to "Excel", event_path("index8.xlsx"), :class => 'btn btn-warning' %>
  <%= link_to "Excel", event_path("index8.xlsx", :q => params[:q]), :class => 'btn btn-warning' %>
# search is part of the index action
def index
  search_params = params[:search] || {}
  @events = Event.search(search_params)
  respond_to do |format|
    format.html {}
    format.json {}
    format.xlsx {}
  end
end