这是我的控制器动作: *控制器/ 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”渲染另一个部分。怎么做?
答案 0 :(得分: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 %>