からハッシュが含まれています生成ActiveRecordのは、私はこのようなスキーマきた文字列
user
にhas_many post_values
author
belongs_toのhas_manyのaddresses
class User < ActiveRecord::Base
has_many :post_values
end
class PostValue < ActiveRecord::Base
belongs_to :user
belongs_to :author
end
class Author < ActiveRecord::Base
has_many :post_values
has_many :addresses
end
class Address < ActiveRecord::Base
belongs_to :author
end
このスキーマそれは一例だと、実際のケースを反映するものではありませんが。
今、私はpost_values_author_addresses
のような文字列を持っています。
Railsライブラリ内のライブラリまたは宝石またはメソッドが存在し、その文字列から関連付けハッシュが返されます:{post_values: {author: :addresses}}
?
私は、このような方法を必要とする
...掻き回すはそのスコープと似た何かをすることを知っている:私は考えるでしょう
これはハッシュが 'User:[:post_values、:author、:addresses]}'であるべきではないことを意味しています。 :post_valuesと 'PostValue' belongs_to:authorと' author' has_many:addressesです。あなたのスキーマは疑問です。読んだとき、それは 'User' has_many:post_valuesと' User' belongs_to:authorと 'User' has_many:addressesとして読み取られます。なぜ機能が必要なのか説明してもらえますか? – engineersmnky
@engineersmnkyさんが質問を編集しました... – Pioz
これには解析ロジックが必要です。あなたは( 'post_values_author_addresses'のように)あなたが得る文字列を制御できますか? 'post_values__author__addresses'に変更できますか?したがって、すべての二重アンダースコアはリレーション名の区切りとみなされます。また、@ engineersmnkyのコメントのように、post_values:{:user、author::addresses}のように、複数の関連付けを "同じレベルで"したい場合、この解析は難しいでしょう。これらの関連付けハッシュに一致する文字列をどのように記述しますか? – MrYoshiji