Я пытаюсь настроить поля вложенной модели в ассоциации :has_many
, но ничего не происходит. Я нахожусь на Rails 4.2.3
, mongoid 4.0.2
, rails_admin 0.6.8
.rails_admin не может изменять поля вложенной модели с помощью связанного_model_config
Property
имеет много Characteristic
с, Product
имеет и принадлежит многим Characteristic
с:
/app/models/property.rb
class Property
include Mongoid::Document
include Mongoid::Timestamps
field :handle
field :title, localize: true
has_many :characteristics, inverse_of: :property
accepts_nested_attributes_for :characteristics, allow_destroy: true
validates :handle, presence: true
validates :title, presence: true
end
/app/models/characteristic.rb
class Characteristic
include Mongoid::Document
include Mongoid::Timestamps
field :handle
field :title, localize: true
belongs_to :property, inverse_of: :characteristics
has_and_belongs_to_many :products
validates :property, presence: true
validates :handle, presence: true
validates :title, presence: true
end
/app/models/product.rb
class Product
include Mongoid::Document
include Mongoid::Timestamps
field :handle
field :title, localize: true
field :page_title, localize: true
field :description, localize: true
field :short_description, localize: true
field :meta_description, localize: true
field :meta_keywords, localize: true
has_and_belongs_to_many :characteristics
validates :handle, presence: true
validates :title, presence: true
end
/config/initializers/rails_admin.rb
require 'i18n'
I18n.available_locales = [:ru, :en]
I18n.default_locale = :ru
RailsAdmin.config do |config|
config.main_app_name = Proc.new { |controller| [ "Babylon", "BackOffice - #{controller.params[:action].try(:titleize)}" ] }
config.actions do
dashboard
index
nestable
new
export
bulk_delete
# show
edit
delete
show_in_app
## With an audit adapter, you can add:
# history_index
# history_show
end
config.model Characteristic do
visible false
label I18n.t(:characteristic).capitalize
label_plural I18n.t(:characteristics).capitalize
object_label_method do
:i18n_characteristic
end
create do
field :title do
label I18n.t(:title)
end
end
update do
field :title do
label I18n.t(:title)
end
end
end
config.model Property do
visible true
label I18n.t(:property).capitalize
label_plural I18n.t(:properties).capitalize
object_label_method do
:i18n_property
end
list do
field :title do
label I18n.t(:title).capitalize
formatted_value do
bindings[:view].link_to value[I18n.locale], bindings[:view].rails_admin.edit_path(model_name: 'property', id: bindings[:object]._id.to_s)
end
end
field :handle do
label I18n.t(:handle).capitalize
end
end
create do
field :title do
label I18n.t(:title)
end
group I18n.t(:seo).upcase! do
field :handle do
label I18n.t(:handle)
end
end
group I18n.t(:characteristics).capitalize do
field :characteristics do
label I18n.t(:characteristics)
associated_model_config do
field :title do
label I18n.t(:title).capitalize
end
end
end
end
end
update do
field :title do
label I18n.t(:title)
end
group I18n.t(:seo).upcase! do
field :handle do
label I18n.t(:handle)
end
end
group I18n.t(:characteristics).capitalize do
field :characteristics do
label I18n.t(:characteristics)
associated_model_config do
field :title do
label I18n.t(:title).capitalize
end
end
end
end
end
end
...
end
def i18n_property
title_translations[I18n.locale]
end
def i18n_characteristic
title_translations[I18n.locale]
end
Итак, как вы видите, я пытался настроить поля Characteristic
модели в 2 места, чтобы показать только поле :title
, но оно по-прежнему автоматически отображает все, что он может извлечь из модели, и даже не переводит:
Пожалуйста, помогите найти решение для отображения вложенных полей вправо! Спасибо.