Я настоящий новичок с MongoDB и MongoID. я создал два подмостиОтображает только одно поле из встроенного документа с MongoID
class Objet
include Mongoid::Document
field :nom, type: String
embeds_one :coordonnee
end
И
class Coordonnee
include Mongoid::Document
field :adresse1, type: String
field :adresse2, type: String
field :code_postal, type: String
field :ville, type: String
embedded_in :objet
end
Вот что я получаю при создании нового Objet
:
Теперь я пытаюсь показать только поле adresse1
для этого документа, но он не работает. Я могу показать только весь внедренный документ, делая это:
Когда я делаю:
<%= @objet.coordonnees.adresse1 %>
Я получаю эту ошибку:
undefined method `adresse1' for #<Hash:0x2b2b1f0>
Как я могу это сделать?
EDIT
Делая это, я могу отобразить все элементы "Adresse1, adresse2, Виль, code_postal":
Controller
def show
@objet = Objet.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @objet }
end
end
View
<%= @objet.nom %>
<% @objet.coordonnee.each do |t| %>
<%= t[1] %>
<% end %>
Но мой вопрос: Как отображать только один из них? Например, ville, или code_postal или adresse1 ...?
Благодарим вас за интерес к моему вопросу. Как я могу перевести этот 'db.collection.find ({}, {" adresse1 ": 1})' в show.html.erb? –
@ GrégoireC вы можете разместить свой текущий show.html.erb? –
Я отредактирую свое сообщение :) –