邮件列表的Rails关联

时间:2016-02-06 13:21:00

标签: ruby-on-rails ruby associations mailing

我想创建类似邮件列表的邮件。

用户属于邮件列表,邮件列表包含许多用户。

我无法为显示list_names和保存list_ids的用户创建多个输入。

我有这段代码:

  .form-group
    =u.label :mailing_list_id, :class => "col-sm-2 control-label"
    .col-sm-10
      = u.association :mailing_list, :label => false , :input_html => { :class => 'form-control' }

它不会保存更改。

我将此代码更改为:

  .form-group
    =u.label :mailing_list_id, :class => "col-sm-2 control-label"
    .col-sm-10
      = u.collection_select :mailing_list_id, MailingList.all, :id, :name, :multiple => true, :label => false , :input_html => { :class => 'form-control' }

现在更改正在保存。但它显示的是list_ids而不是list_names,我无法为此输入设置多选项。

架构数据库:

create_table "mailing_lists", force: :cascade do |t|
t.string   "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false

create_table "users", force: :cascade do |t|
t.string   "email",                  default: "",    null: false
t.string   "encrypted_password",     default: "",    null: false
t.string   "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer  "sign_in_count",          default: 0,     null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string   "current_sign_in_ip"
t.string   "last_sign_in_ip"
t.datetime "created_at",                             null: false
t.datetime "updated_at",                             null: false
t.boolean  "admin",                  default: false
t.string   "first_name"
t.string   "last_name"
t.string   "address"
t.float    "latitude"
t.float    "longitude"
t.integer  "mailing_list_id"

Class MailingList has_many : users
Class User belongs_to :mailing_list

我是否需要创建连接表?

我从零开始学习ruby和ruby on rails,所以我接受每一个批评:)

由于

0 个答案:

没有答案