我有两个模特,书和课程。在books_controller中,我有一种按ISBN搜索书籍的搜索方法。
def searchbook
@searchedbook = Book.find_by_isbn(params[:q])
end
索引页面中有一个显示所有书籍的输入字段。所以我的index.html.erb有这个:
=form_tag({controller: "books", action: "searchbook"}, :method => :get) do
.search_field
%p
Search Using ISBN:
=text_field_tag :q
=button_tag 'Go' , class: 'search-button' , type: :submit
%br
我已将此添加到我的路线中:
match 'searchbook', to: 'books#searchbook', via: :get
我刚刚意识到我的searchbook.html.erb与show.html.erb完全相同。如何让show.html.erb从searchbook中呈现结果
答案 0 :(得分:1)
由于您对搜索工作簿页面查看和表单提交采取了相同的操作,因此您需要在网址q
操作中检查参数searchbook
。因此,无论何时提交表单,它都会附加参数q
和@searchedbook
def searchbook
@searchedbook = Book.find_by_isbn(params[:q]) if params[:q].present?
end
searchbook.html.erb
-if @searchedbook
= render "show" # render the show partial
答案 1 :(得分:0)
这是partials的目的。
答案 2 :(得分:0)
使用searchbook.html.erb
中的部分内容,例如render "show"
。