before_action - performing an action to prevent

69 views
Skip to first unread message

Денис Чурбанов

unread,
Oct 18, 2013, 8:02:21 AM10/18/13
to rubyonra...@googlegroups.com
class WebsocketController < WebsocketRails::BaseController

  private

  def authenticate?
    unless current_user.token == message[:token]
      current_redirect_to 'home/index'
      false # that here we need to do to stop the further execution?
    end
  end

end

class WorldsController < WebsocketController
  before_action :authenticate?

  def index
    current_html_insert 'worlds/index'
  end

end

From the documentation: If you call render, head or redirect_to from a before_action, the filter chain will be halted, but I have a different situation:
current_redirect_to and current_html_insert - are methods of controlling the behavior of the client through websockets,
they do not call methods render, head or redirect_to.
Please tell me how can I fix this problem.

Jordon Bedwell

unread,
Oct 18, 2013, 4:07:23 PM10/18/13
to rubyonra...@googlegroups.com
On Fri, Oct 18, 2013 at 7:02 AM, Денис Чурбанов <odmin...@gmail.com> wrote:
> From the documentation: If you call render, head or redirect_to from a
> before_action, the filter chain will be halted, but I have a different
> situation:
> current_redirect_to and current_html_insert - are methods of controlling the
> behavior of the client through websockets,
> they do not call methods render, head or redirect_to.
> Please tell me how can I fix this problem.

Render nothing (literally.)

class WebsocketController < WebsocketRails::BaseController
private

def authenticate?
unless current_user.token == message[:token]
current_redirect_to 'home/index'
render :nothing => true, :status => 301
end
end
end

Денис Чурбанов

unread,
Oct 19, 2013, 1:06:28 AM10/19/13
to rubyonra...@googlegroups.com
Thank you, this is what you need!

суббота, 19 октября 2013 г., 0:07:23 UTC+4 пользователь Jordon Bedwell написал:
Reply all
Reply to author
Forward
0 new messages