【问题标题】:Creating a Search Bar in HAML format以 HAML 格式创建搜索栏
【发布时间】:2016-04-28 00:56:32
【问题描述】:

本教程代码是 ERB 格式,但我是在 HAML 中编写的。

ERB 代码:

<%= form_tag search_movies_path, method: :get, class: "navbar-form navbar-right", role: "search" do %>
  <p>
    <%= text_field_tag :search, params[:search], class: "form-control" %>
    <%= submit_tag "Search", name: nil, class: "btn btn-default" %>

我现在在 HAML 中拥有的东西:

- if user_signed_in?
  = link_to current_user.name, edit_user_registration_path
  = link_to "Sign Out", destroy_user_session_path, method: :delete
  = link_to "Selling", new_post_path, class: "button"
  = form_tag posts_path, :method => :get do
    = text_field_tag :search, params[:search] 
    = submit_tag "Search", name: nil, class: "btn btn-default"
- else 
  = link_to "Sign in", new_user_session_path
  = link_to "Sign Up", new_user_registration_path
  = link_to "Selling", new_post_path, class: "button" 
  = form_tag posts_path, :method => :get do
    = text_field_tag :search, params[:search]
    = submit_tag "Search", name: nil, class: "btn btn-default"

但它不起作用。有人知道怎么做吗?

我的搜索方法如下:

def search
  if params[:search].present?
    @posts = Post.search(params[:search])
  else
    @posts = Post.all
  end
end

【问题讨论】:

  • 什么“不起作用”?从您的解释中不清楚它应该做什么,也不清楚问题可能出在哪里。
  • 所以在这个项目中我实现了 searchkick gemfile 并且我已经完成了所有的工作,除了不知道如何在 haml 中编写搜索表单。我相信错误来自这行代码:= form_tag posts_path, :method => :get do 非常感谢您的帮助
  • HAML 和 HTML 是 1:1 映射,只是表达完全相同的事物的不同方式。
  • 您遇到的错误是什么?

标签: ruby haml erb


【解决方案1】:

您已经定义了一个名为search 的操作(大概在PostsController 中),但您引用的是posts_path,它将转到index 操作。您需要将代码放入index 或使用search_posts_path

这是您发布的 ERB 的等效 HAML,使用 search_posts_path 来点击您定义的操作:

= form_tag search_posts_path, method: :get, class: "navbar-form navbar-right", role: "search" do
  %p
    = text_field_tag :search, params[:search], class: "form-control"
    = submit_tag "Search", name: nil, class: "btn btn-default"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 2023-03-24
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    相关资源
    最近更新 更多