【发布时间】:2018-06-01 16:25:58
【问题描述】:
我在 Rails 中使用“渲染”时遇到了问题。我的控制器中有一个自定义操作“搜索”,它应该呈现索引,如下所示。
def search
@date = params[:reserve_date]
@tables = Table.all
render 'index'
end
使用以下代码在不同的视图中使用该操作:
<%= form_with url: search_tables_path do |f| %>
<%= f.date_field :reserve_date %>
<%= submit_tag "SEND" %>
<% end %>
按下“发送”按钮后,应呈现“索引”视图。服务器状态:
在布局/应用程序中渲染表/index.html.erb (25.0ms)
在 127 毫秒内完成 200 次 OK(查看次数:123.2 毫秒 | ActiveRecord:3.0 毫秒)
但是,浏览器中根本没有显示任何内容。它停留在上一页没有变化。如果我尝试通过这样的链接访问索引视图:
然后索引视图正在正常显示,但是我当然不会传递任何额外的信息。我怎样才能让它正确渲染?
编辑 HTML 中的表单标签似乎是完整的
<form action="/tables/search" accept-charset="UTF-8" data-remote="true" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="4L/RNvCzlPX8PzDGk2LXcSiyrhzXVU3cwsLUmaQvq10y9HpESbH8CX+74n/UHxLJ5LUdiWYBdoaqCb2jFIYEgw==" />
这是我的 routes.rb 文件:
Rails.application.routes.draw do
devise_for :users
resources :tables do
collection do
post 'search'
end
end
resources :reservations
root 'home#index'
end
【问题讨论】:
-
您正在显示的操作称为
search。我以为您说您有一个名为show的操作。您将需要展示您是如何设置路线的。 -
使用浏览器的“显示源代码”功能或自动化测试来检查
form_with生成的内容。它是真实的、完整的<form>标签吗?编辑您的帖子并添加结果。 -
连同@Phlip 询问的数据,将
config/routes.rb的内容也放入 -
@lurker 这是一个错字,我的意思是“搜索”操作。
标签: ruby-on-rails ruby