无法在轨道上的红宝石中正确访问表单元素。

时间:2012-12-13 06:25:08

标签: ruby-on-rails-3 search form-submit

我正在开发一个rails应用程序。我在表单提交和呈现方面存在问题。 这是“show”视图的代码。

  <%= 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

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

1 个答案:

答案 0 :(得分:0)

Google搜索“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

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