MongoDB は初めてで、Array-Field-Type の使用方法がわかりません。
だから私は自分のモデルで作成しました
field :admins, type: Array
このフィールドには、モデルの「管理者」であるすべての user_id を保存したいと考えています。しかし、このフィールドを設定しようとすると、配列に情報が保存されず、ID を持つ文字列が単純に作成されます。そして、管理者だけが私のフィルター機能を編集できるという私の制約のために
def check_if_admin
unless Agency.find(params[:id]).admins.include?(current_agent.id)
flash[:notice] = "Only possible as Admin."
redirect_to root_path
end
end
というエラーが発生します
"can't convert Moped::BSON::ObjectId into String"
だから私は自分のフィールドを ID を持つ配列として作成定義で開始しようとしました:
@agency.admins = [current_agent.id]
これは配列内の 1 人のユーザーのトリックですが、このフィールドに ID を追加するにはどうすればよいですか?
編集フォームに入ると:
<%= form_for(@agency) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :admins %><br />
<%= f.text_field :admins %> <br />
</div>
<div class="field">
<%= f.label :agents %><br />
<%= f.text_field :agents %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
別の User_ID を手で入力すると、再びエラーに戻ります。誰でもそれを回避する方法を知っていますか?
助けてくれてありがとう!