Tôi đang gửi một yêu cầu javascript đến một hành động điều khiển để cố gắng chuyển hướng đến một trang html khác nếu các điều kiện nhất định không được đáp ứng. Sau khi xem qua một số câu hỏi, đây là những gì tôi đã đưa ra:Chuyển hướng đến html từ javascript yêu cầu không hoạt động (Rails)
def twittertweet
if current_user && current_user.twitter_token
....
else
flash[:notice] = "You must be registered with Twitter to do that."
respond_to do |format|
format.js { render(:update) { |page| page.redirect_to authentications_url } }
end
end
end
Tôi muốn chuyển hướng_ đến authentications_url. Tuy nhiên, đây là những gì sẽ xảy ra:
Started POST "/twittertweet.json" for 127.0.0.1 at 2012-04-11 13:38:27 -0400
Processing by ItemsController#twittertweet as */*
Parameters: {"id"=>"22"}
Category Load (0.3ms) SELECT "categories".* FROM "categories"
Rendered items/update.html.erb within layouts/application (0.0ms)
Completed 200 OK in 112ms (Views: 79.9ms | ActiveRecord: 5.7ms)
Như bạn có thể thấy, nó thậm chí không cố chuyển hướng đến xác thực_url. Tuy nhiên, tôi biết tuyên bố "khác" là đạt được (tôi đã đặt tuyên bố để giúp tôi tìm ra điều đó).
Bất kỳ giải pháp nào cho vấn đề này?
Cập nhật Nếu bạn thử giải pháp của DanS, có một MissingTemplateError. Nó vẫn đang cố gắng chuyển hướng đến các mụC# cập nhật:
ActionView::MissingTemplate (Missing template items/update, application/update with {:handlers=>[:erb, :builder, :coffee], :formats=>[:json], :locale=>[:en, :en]}. Searched in:
* "/Users/dylandrop/Documents/givespend/app/views"
* "/Users/dylandrop/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.0.4/app/views"
):
Bạn có cần hiển thị (: cập nhật) không? 'format.js {redirect_to authentications_url}' – DanS
@DanS Nếu tôi làm điều này, thông báo "Bắt đầu GET"/xác thực "cho 127.0.0.1 lúc 2012-04-11 13:57:03 -0400 Đang xử lý bởi AuthenticationsController # index as */* "etc ... nhưng không thực sự tải trang – varatis
@DanS Nói cách khác nó nói nó đã trả về" authentications/index.html.erb "nhưng không thực sự làm bất cứ điều gì – varatis