ruby-on-rails - 如何使用表单在 Ruby on Rails 中设置参数值(对于 Scope)?
问题描述
我想在 ruby on rails 的作用域的帮助下构建一个过滤器。
在我的控制器中,我有以下几行:
def index
@carpools = Carpool.paginate(page: params[:page], per_page: 5)
@carpools = @carpools.filter_by_locationFrom(params[:carpool_from]) if params[:carpool_from].present?
end
在我的模型中,我有以下几行:
scope :filter_by_locationFrom, -> (locationFrom) { where locationFrom: locationFrom }
在我看来(index.html.erb),我想要一个表单来输入locationFrom的值,以便控制器知道参数:locationFrom存在并且只选择指定的数据(具有locationFrom值)从数据库。
我尝试了几种表单格式,但都遇到了一些问题。我怎样才能制作这样的表格?这是我尝试过的表格:
<%= form_with(model: @carpool, method: "POST") do |f| %>
<div class="form-group row">
<%= f.label :locationFrom, class: "col-2 col-form-label text-light" %>
<div class="col-10">
<%= f.text_field :carpool_from, class: "form-control shadow rounded", placeholder: "From" %>
</div>
</div>
<div class="form-group row justify-content-center">
<%= f.submit("filter", class: "btn btn-outline-light btn-lg") %>
</div>
<% end %>
这给出了 400 bad request,说:
ActionController::ParameterMissing (param is missing or the value is empty: carpool):
app/controllers/carpools_controller.rb:20:in `create'
但我的表单在“索引”页面内,我不知道为什么它指的是“创建”
提前致谢!
解决方案
推荐阅读
- c# - 如何让 dotnet 显示更短的堆栈跟踪?
- android - 如何从两个扬声器播放?
- selenium - 无法在 selenoid 中看到 http://myselenoid-host.example.com:4444/video/ 下的任何录制视频
- java - Maven 构建:从环境变量设置 settings.xml 路径
- javascript - 节点js应用程序中的pdf2json解析错误
- reactjs - 使用 react 实现客户端过滤
- reactjs - 在 React 中循环两个数组以返回表
- react-native - 通过路由 props 从 Child 到 Parent 共享状态
- android - Flutter image_picker 权限找不到有效的活动来处理请求
- c# - 如何使用 IServiceScopeFactory.CreateScope