ruby on rails - Application Controller level validation with redirect -


I'm sure, make sure that the best way to make some necessary properties of each user is not what And if they don 't want me to' new 'page like

  class ApplicationController & lt to redirect them; ActionController :: Base protect_from_forgery before_filter: authenticate_user!,: Valid_location def valid_location if (? Current_user.location.nil || current_user.location.city.nil) redirect_to new_user_locations_path (current_user.id) and true end end  

The above example is flawed because it creates a redirect loop. I can definitely use some advice about making this kind of recognition thanks

cause that this is creating a loop, because valid_location method is also controller be called new_user_locations_path . To prevent this you need to make sure that the filter does not run with the controller ( skip_before_action in Rail 4). There is such a problem.

  Classroom Controller & lt; ApplicationController skip_before_filter: valid_location, only [New ,: Create] # ... end  

because valid_location provides a real / false Boolean, I rename I recommend valid_location? Referring method and reasoning to or invalid_location :

  class ApplicationController & lt; ActionController :: Base protection_from_forgery before_filter: authenticate_user!,: Redirect_invalid_locations private def redirect_invalid_locations redirect_to (new_user_locations_path (current_user)) that invalid_location? End def invalid_location? Current_user.try (: location) .try (: city) .nil? End and Class Location Controller & lt; ApplicationController skip_before_filter: redirect_invalid_locations, only: [: new,: create] expiration  

Comments

Popular posts from this blog

java - Can't add JTree to JPanel of a JInternalFrame -

javascript - data.match(var) not working it seems -

javascript - How can I pause a jQuery .each() loop, while waiting for user input? -