ruby-on-rails - 表单助手中的常用表单标签
问题描述
我有一个搜索栏表单,它根据名称搜索项目。项目按已完成项目、进行中项目和建议项目进行区分。这三个具有相同的形式期望路径名。所以,我决定在 helper 中使用一个通用的形式。
已完成、提案和进行中的项目在项目控制器中使用不同的操作。我试过用 区分表格params[:name]
,但它不起作用。有没有可用的解决方案?
helper_method
module ProjectsHelper
def form_for_projects_search_bar(condition1,condition2,condition3,&block)
if condition1
form_tag proposed_projects_path, method: :get, :html => {class: "form"}, &block
elsif condition2
form_tag completed_projects_path, method: :get, :html => {class: "form"}, &block
elsif condition3
form_tag projects_path, method: :get, :html => {class: "form"}, &block
end
end
end
表格文件
<%= form_for_projects_search_bar params[:proposed_projects].present?, params[:completed_projects].present?, params[:projects].present? do |form| %>
<%= text_field_tag :term, params[:term],placeholder:"What are you looking for?", class: "search_field" %>
<%= submit_tag 'Search', name: nil, class: "search_bar_button" %>
<% end %>
路线
projects_path GET /projects(.:format) projects#index
proposed_projects_path GET /proposed_projects(.:format) projects#proposal
completed_projects_path GET /completed_projects(.:format) projects#completed
我想根据参数名称检查条件,如proposed_projects
, composed_projects
, projects
。如果我在做正确的方式form.html.erb
?
如果有其他可用的解决方案?
解决方案
<%= form_for_projects_search_bar params[:action]=="proposal", params[:action]=="completed", params[:action]=="progress" do %>
<%= text_field_tag :term, params[:term],placeholder:"What are you looking for?", class: "search_field" %>
<% end %>
像这样区分每个动作......这可能会帮助你......
推荐阅读
- c# - C# Winform OnPaint 闪烁
- python - 如何防止我的程序冻结?
- javascript - P5.js 相机不适用于多个旋转矩阵
- winapi - MFC:在禁用 CFormView 时启用 CFormView 的等待光标?
- javascript - 如何访问 localStorage 或模拟 localStorage 以进行 Jest + vue-test-utils 测试?
- python - 如何从 DataFrame 中删除包含 NaN 的行
- mysql - MySQL 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法
- javascript - jquery fadeOut 不显示:无;
- css - 媒体查询和引导
- c - 从链表中删除节点的问题