Nó được một lúc kể từ khi câu hỏi này đã được đăng - nhưng tôi chỉ cần bỏ ra một thời gian figuring this out & không thể tìm thấy sự giúp đỡ quá nhiều vào trực tuyến này, vì vậy:
Giải pháp là để tạo các tệp .js.erb - một cho thành công và một cho thất bại.
def create
@foo = Foo.new(params[:foo])
if @foo.save
respond_to do |format|
format.html { redirect_to root_path }
format.js { render :action => "success"} #rails now looks for success.js.erb
end
else
respond_to do |format|
format.html { render :action => 'new'}
format.js { render :action => "failure"} #rails now looks for failure.js.erb
end
end
end
end
Nếu vẻ như là nếu bạn không chỉ định một tên tập tin, đường ray sẽ tìm kiếm create.js.erb trong cả hai trường hợp (vì format.js được gọi từ tạo). Điều này không tuyệt vời trong trường hợp các tình huống thành công/lỗi vì bạn muốn có hành vi khác nhau cho từng kịch bản - vì vậy hãy ghi đè tên tệp thông qua thuộc tính: action.