Какой метод использует Rails для получения имени параметра для ресурса ActiveRecord? - PullRequest
2 голосов
/ 04 октября 2011

Я копал документацию и API ActiveRecord и FormHelper и не могу найти, как Rails переходит от класса AR, такого как class Namespace::MyResource < ActiveRecord::Base, к имени параметра namespace_my_resource.

ХотяЯ уверен, что нетрудно написать свой собственный метод, чтобы сделать это class ActiveRecord::Base; def to_pname; self.class.name.underscore.gsub(/\//, '_'); end; end, кажется, это НЕ СУХОЙ.

Ответы [ 2 ]

1 голос
/ 05 октября 2011
include ActiveSupport::Inflector
tableize "Namespace::MyResource"

=> "namespace / my_resources"

Это близко к тебе. Добавьте простой gsub для замены косой черты на подчеркивание:

tableize("Namespace::MyResource").gsub(/\//,'_')

=> "namespace_my_resources"

Не уверен, что именно так ActiveRecord делает это, но решает это довольно общим способом.

0 голосов
/ 22 мая 2013

Вам понадобится единственная версия для params[:namespace_my_resource]

"Namespace::MyResource".underscore.gsub(/\//,'_')

=> "namespace_my_resource"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...