Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Mar 28 03:30
    shioyama commented #364
  • Mar 27 13:20
    doits commented #364
  • Mar 24 13:40
    tuzz commented #361
  • Mar 24 13:38
    tuzz commented #361
  • Mar 24 13:04
    tuzz commented #361
  • Mar 19 00:00
    0urobor0s opened #15
  • Mar 11 19:31
  • Mar 11 18:38
  • Mar 11 18:29
    doits commented #364
  • Mar 11 18:19
    doits edited #364
  • Mar 11 18:17
    doits opened #364
  • Mar 11 18:12
    doits synchronize #328
  • Mar 11 18:09
    doits synchronize #328
  • Feb 13 14:59
    shioyama closed #362
  • Feb 13 14:59
    shioyama commented #362
  • Feb 13 14:55
    cilim commented #362
  • Feb 13 04:00
    shioyama commented #357
  • Feb 12 02:18
    shioyama commented #357
  • Feb 12 02:18
    shioyama commented #357
  • Feb 12 00:56
    shioyama commented #357
Bram Jetten
@Bramjetten
Because the master branch doesn't include the validation anymore
The 1.0 release should
Bram Jetten
@Bramjetten
I think I got it
Because of .unscoped it doesn't join the translations table anymore
Chris Salzberg
@shioyama
Yes I thought that might be the issue, but it shouldn't matter for the translations table
Anyway it's easy to check if that's the cause
Bram Jetten
@Bramjetten
If I remove unscoped, it passes the specs again
Chris Salzberg
@shioyama
Ah
Indeed, I see the same
I added unscoped because ActiveRecord does that
But I can easily remove it
Bram Jetten
@Bramjetten
Doesn't that cause issues with models with a default_scope?
Chris Salzberg
@shioyama
My understanding was that uniqueness should not depend on default_scope
But I should have looked deeper
anyway I'll yank that out and release 0.7.1
Thanks!
Bram Jetten
@Bramjetten
Awesome thanks!
I think I didn't look carefully enough
Chris Salzberg
@shioyama
Chris Salzberg
@shioyama
So, looking over the code, the question is really "why did Mobility specs not fail".
unscope removes the where clause, which messes everything up (not just Spina).
ok, figured it out. Half of the specs were not even running validations. Thanks for noticing! I'll fix them.
Bram Jetten
@Bramjetten
Awesome, great to see it fixed so quickly!
gcrouillere
@gcrouillere
Hi, @shioyama . I have opened this question on SO : https://stackoverflow.com/questions/51132753/mobility-gem-rails-how-to-perform-a-join-with-like-query-on-a-translated-mod
Could you have a look please ?
Chris Salzberg
@shioyama
Hi @gcrouillere sorry didn't see your comment here but did comment on the SO question. That's really cool that you got the arel to work on that query!
Product.joins(:category).merge(Category.i18n {name.matches_any(categories)})
This is a really nice example of what you can do with the new block query interface.
Chris Salzberg
@shioyama

Hi everyone, just a shout-out to mention I've released 0.8.0: https://rubygems.org/gems/mobility/versions/0.8.0

There's not that much new here for ActiveRecord users, other than new support for order with translated attributes. Globalize supports this; Mobility now does too, for all backends.

For Sequel users, this release includes a complete reworking of querying so that, like with ActiveRecord, you can now use a block format with the query scope (dataset):

Post.i18n { title =~ "foo" }

This is almost the same as Virtual Rows with Sequel, where you can pass a block to where and do some nice querying within the block. For now I have not modified the block format to where so if you want to use translated attributes in your block queries, you need to use i18n (like AR).

Sequel users (I know there are some out there!) let me know if this works (or doesn't work!) for you.

Brice Sanchez
@bricesanchez
Thanks @shioyama !
Chris Salzberg
@shioyama

Hi again, I just created a gem integrating Mobility with Ransack: https://github.com/shioyama/mobility-ransack

It's very small, you can see all the code here: https://github.com/shioyama/mobility-ransack/blob/master/lib/mobility/plugins/ransack.rb

I've just started testing it and it seems to work nicely, but before I release a version 0.1.0 I'd like to get some feedback. If you've ever wanted to search on translated attributes with Ransack, this is your chance! Go crazy and tell me if anything breaks.

Currently the version is 0.0.1 which basically means it's in the "thought experiment" phase. It has no tests yet either.
Chris Salzberg
@shioyama
If you try the Ransack plugin, you'll need to add ransack to the list of plugins in Mobility.config, I updated the readme to explain how to do this (very simple).
Bram Jetten
@Bramjetten
Hey @shioyama, quick question regarding fallbacks. This seems to work fine: translates :label, fallbacks: I18n.fallbacks, but I'm not sure if it's the way to go. It feels like a sensible default. Anything I'm missing here?
Chris Salzberg
@shioyama
Does fallbacks: true not give you the same thing?
Bram Jetten
@Bramjetten
No, it didn't, but that might be my setup. I'll look into it!
Whatever you set for I18n.fallbacks should be the default. See: shioyama/mobility#161
Bram Jetten
@Bramjetten
Back with questions about fallbacks! They seem to work fine in my views, but not in the Rails console or rake tasks.
Do Mobility's fallbacks only work in view context?
Chris Salzberg
@shioyama
Sorry just saw this question now. Fallbacks should work everywhere, they're not dependent on context.
However, they are dependent on whether I18n responds to the fallbacks method. See: https://github.com/shioyama/mobility/blob/ba245498ff838a6db04ebf26917bfa0711437d9d/lib/mobility/fallbacks.rb#L20-L26
If I18n responds to fallbacks, then Mobility will use the I18n-defined fallbacks object, otherwise it will just use an instance of I18n::Locale::Fallbacks. The distinction is kind of subtle. This is done mainly so that if you set fallbacks in Rails (which I believe sets I18n.fallbacks), Mobility will pick them up if they are there.
I don't really like this code actually. For background, see: shioyama/mobility#161
So I'm guessing maybe that in console, I18n.fallbacks is not (yet?) set by Rails, or maybe it is set after Mobility loads the fallbacks. Not really sure, but I can't imagine anything else that would explain the difference.
justin-
@justin-
  1. Regarding this example in the docs: translates :name, fallbacks: { de: :ja, fr: :ja }, is it possible to specify a default locale to fall back to (for only this 1 attribute) rather than having to explicitly set it for every locale?

  2. What's the difference between I18n.default_locale, I18n.locale=, and Mobility.default_locale, Mobility.locale=, etc?

Chris Salzberg
@shioyama
For I18n methods, you should look to the i18n gem: https://github.com/ruby-i18n/i18n Mobility does not define those methods
Mobility.locale is the global locale that Mobility uses to determine what language to set/get. It defaults to I18n.locale if it is not itself set.
There is no Mobility.default_locale, only I18.default_locale.
Raimond Garcia
@voodoorai2000

Hey @shioyama,

Thank you so much for your work with this gem. 👏

We're moving from Globalize to Mobility (using the Table Backend) and we've got a question about DB columns:

We would like to keep things as standard as possible maintaining the schema with the translated columns in their original/untranslated tables too. Globalize raises a warning due to keeping these columns ("you have defined one or more translated attributes with names that conflict with columns on the model table") but we are not seeing this warning with Mobility.

Are you aware of any issues we might have due to keeping these columns?

Thanks!