小编Gid*_*rek的帖子

在Phoenix Framework中渲染多对多关系JSON

我有下一个型号

defmodule App.User do
  use App.Web, :model
  alias App.User

  schema "users" do  
    field :name, :string
    has_many :roles_users, App.RolesUser
    has_many :roles, through: [:roles_users, :role]
    timestamps
  end
end 

defmodule App.Role do
  use App.Web, :model

  schema "roles" do
    has_many :roles_users, App.RolesUser
    has_many :users, through: [:roles_users, :user]
    field :name, :string
    timestamps
  end

end

defmodule App.RolesUser do
  use App.Web, :model

  schema "roles_users" do
    belongs_to :role, App.Role
    belongs_to :user, App.User
    timestamps
  end
end
Run Code Online (Sandbox Code Playgroud)

是为了多对多的关系.我要显示的控制器是

def index(conn, _params) do
  users = Repo.all(User)
        |> Repo.preload(:roles)

  render(conn, "index.json", users: …
Run Code Online (Sandbox Code Playgroud)

elixir ecto phoenix-framework

7
推荐指数
1
解决办法
4022
查看次数

从EmberJS和ember-data中的选择表单中获取值

我是Ember的新手,我正在创建一个具有一些模型关系的App.

这些是我的模特

// models/user.js
export default DS.Model.extend({
  name: DS.attr('string'),
  role: DS.belongsTo('role')
});

// models/role.js
export default DS.Model.extend({
  name: DS.attr('string'),
  description: DS.attr('string')
});
Run Code Online (Sandbox Code Playgroud)

我的新用户路线是

import Ember from 'ember';

export default Ember.Route.extend({

  model: function(){
    return Ember.RSVP.hash({
      newUser: this.store.createRecord('user'),
      roles: this.store.findAll('role'),
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

想法是获取角色并在表单中的选择视图中进行选择

这是我创建新用户的模板

<form {{ action "save" on="submit" }}>
  {{ input value=newApplicant.name class="form-control" }}
  <select name="role" class="form-control" value="role.value">
       {{#each model.roles as |role|}}
             <option value="{{role.id}}">{{role.name}}</option>
       {{/each}}
  </select>
Run Code Online (Sandbox Code Playgroud)

在此步骤之前一切正常,我选择了正确的数据,但我想保存,我不知道如何从表单中获取角色ID并插入用户

这是我的新控制器

import Ember from 'ember';

export default Ember.Controller.extend({

newUser: Ember.computed.alias('model.newUser'),
roles: null,
// …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data

4
推荐指数
1
解决办法
3605
查看次数

合并Ruby中的哈希数组并计算相同的键

我有这种格式的一些数据

[{
    "_id" => "20",
    "value" => 1
}, {
    "_id" => "19",
    "value" => 1
}, {
    "_id" => nil,
    "value" => 8
}, {
    "_id" => "27",
    "value" => 1
}, {
    "_id" => "25",
    "value" => 3
}, {
    "_id" => "28",
    "value" => 1
}]
Run Code Online (Sandbox Code Playgroud)

我想将相同的值与"_id"键合并,并将"值"值相加.

欲望输出

[{
    "_id" => "20",
    "value" => 1
}, {
    "_id" => "19",
    "value" => 2
}, {
    "_id" => nil,
    "value" => 8
}, ...]
Run Code Online (Sandbox Code Playgroud)

有一种优雅的方式来做到这一点?

我试过两个循环,但我认为这不是最好的方法.

ruby ruby-on-rails

2
推荐指数
1
解决办法
966
查看次数