0

这是我的控制器操作:*controller/books_controller.rb*

def search_book
        @found_book = Book.find_by_token(params[:token_no])

        #once found I am rendering my search_book.js.erb file (with UJS) 
         respond_to do |format|
           format.js
         end
 end

这是我的 js 文件,用于更改我的 html 内容:views/books/search_book.js.erb

  $("#found_book").html("<%= escape_javascript( render(:partial => "book_view") ) %>");

如果成功找到我的书,则通过 UJS 呈现部分内容。(完成)

假设我的书没有找到,即@found_book.nil?是真的。在这种情况下,我想为我的 div“found_book”渲染另一个部分。怎么做 ?

4

1 回答 1

3

请记住,search_book.js.erb 仍然是 erb,因此您可以评估您的实例变量并使用条件来呈现您选择的部分。

<%- if @found_book.nil? %>
  $("#found_book").html("<%= escape_javascript( render(:partial => "no_book_view") ) %>");
<%- else %>
  $("#found_book").html("<%= escape_javascript( render(:partial => "book_view") ) %>");
<% end %>
于 2013-10-15T19:27:15.980 回答