0

我正在开发一个 Rails 应用程序。我对表单提交和呈现有疑问。这是“显示”视图的代码。

  <%= form_for :search_form do |f| %>
    <%= f.text_field :search_tag %><br>
    <%= f.submit "find" %>
    <% end %>
  <% @array_bookmark = @bookmark.class == Array ? @bookmark : [@bookmark] %>
  <% @array_bookmark.each do |book| %>
  <li><%= book.url%>
  <b>Title:</b>
  <li><%= book.title%>
  <% end %>

控制器动作是:

def show
  if request.post?
  @bookmark = Bookmark.new(params[:search_form])

  bookmark = Bookmark.find_by_title(@bookmark.search_tag)
  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @bookmark }
  end
  end  
end

视图是搜索表单,当表单被提交时,它会进入控制器并搜索在数据库中输入的元素,并将其返回到显示它的相同视图。
我该怎么做?请给我一个解决方案。

4

1 回答 1

0

谷歌搜索“rails 搜索示例”的第一个结果是https://we.riseup.net/rails/simple-search-tutorial

我建议您花一些时间阅读 Rails 文档。从这里开始http://guides.rubyonrails.org/action_controller_overview.html

另请注意 form_for 帮助器用于围绕特定模型创建表单http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for。如果您正在创建一些随机自定义表单,您想要的助手是 form_tag http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-form_tag

此外,通常显示视图旨在显示单个资源。索引视图旨在显示资源集合。当然,这些只是约定,而不是规则,但我建议您的代码在这里违反约定。

于 2012-12-13T16:09:11.627 回答