svenfuchs / routing-filter

routing-filter wraps around the complex beast that the Rails routing system is, allowing for unseen flexibility and power in Rails URL recognition and generation.
http://www.artweb-design.de
MIT License
464 stars 84 forks source link

Could you please update the gem in rubygems #48

Open acenqiu opened 11 years ago

acenqiu commented 11 years ago

The gem hosted in rubygems is still an old version, which is incompatible with Rails 4.

lightbe commented 11 years ago

Still has not been updated. I am having the same problem. I get the error below when I try to launch my Rails application.

cannot load such file -- routing_filter/adapters/rails_4

kuroda commented 11 years ago

I have published https://rubygems.org/gems/routing-filter/versions/0.4.0.pre. Please check if it works well.

lightbe commented 11 years ago

I have finally had a chance to use the 0.4.0.pre version of the gem for Rails 4. However I am finding differences between this version and the one I currently use in my Rails 3 applications. I'm not sure if there are differences in the routing-filter gems or if the issue is with i18n changes in Rails 4.

Here is the code I have in both applications in application_controller.rb where I set the locale and create a cookie.

before_filter :set_locale

private def set_locale I18n.locale = (params[:locale] if params[:locale].present?) || cookies[:locale] || 'en' cookies[:locale] = I18n.locale if cookies[:locale] != I18n.locale.to_s end

Here is the code I have in config/routes.rb.

filter :locale

When I run my Rails 3 applications the locale appears in the URL link and my debug info when I click all my links. When I run my Rails 4 application the only time the locale appears in the link is when I click a link to set the locale. When I click all my other links (text or icon) the translations appear correctly but there is not a locale value in the URL or in the debug info.

Here is the code for my locale line in my header.

<%= link_to_unless_current "English", locale: "en" %> <%= link_to_unless_current "Español", locale: "es" %> <%= link_to_unless_current "Français", locale: "fr" %>

Again I'm not sure if the issue is with the 0.4.0.pre gem or if I need to make additional i18n changes in my Rails 4 application. From reading the i18n documentation I'm not seeing anything additional I need to do. There is no specific documentation about 0.4.0.pre so I assume I should be able to do what I am doing with the Rails 3 version of routing-filter.

Any help would be appreciated.

lightbe commented 11 years ago

The routes still do not include the locale like the Rails 3 version did.

Serabe commented 10 years ago

Anything about this?

lightbe commented 10 years ago

I removed the gem since I could not get it working the way it did in Rails 3. The last I checked it is still a prerelease version. I am using the built in Rails 4 i18n functionality. I was able to get the routing I wanted with the locale in the route e.g. /en. I'm also have code where the locale defaults to en if it is missing from the route.