0

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

用户属于邮件列表,并且邮件列表有很多用户。

我在为用户创建多个输入以显示 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,所以我接受所有批评:)

谢谢

4

0 回答 0