我正在开发一个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
视图是搜索表单,当提交表单时,它将转到控制器并搜索在数据库中输入的元素,并将其返回到显示它的同一视图。
我该怎么做?请给我一个解决方案。
答案 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视图用于显示单个资源。索引视图用于显示资源集合。当然这些只是约定,而不是规则,但我建议你的代码违反这里的约定。