ЖЕЛЕЗНОДОРОЖНЫЕ - Как добавить тег выбора и поместить все элементы моей категории - PullRequest
0 голосов
/ 02 января 2019

Итак, у меня есть леса для блогов и post_category.

Я связался с ними обоими. Вот моя схема:

  create_table "blogs", force: :cascade do |t|
    t.string "title"
    t.text "body"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "slug"
    t.integer "status", default: 0
    t.bigint "post_category_id"
    t.index ["post_category_id"], name: "index_blogs_on_post_category_id"
    t.index ["slug"], name: "index_blogs_on_slug", unique: true
  end

  create_table "post_categories", force: :cascade do |t|
    t.string "name"
    t.text "description"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

Итак, я просто создал пару категорий сообщений, и когда я пытаюсь установить связь с элементами блога, чтобы при создании нового блога я мог отображать оператор выбора и выбирать предпочитаемую категорию для элемента блога, который я пытаюсь создать. но я не знаю, как отобразить все категории во всех формах и в файле index.html.erb:

  <div class="field">
  <%= form.label :category %>
  <%= form.collection_select :post_category, PostCategory.all %>
  </div>

Как мне этого добиться? И убедиться, что он также сохраняет данные?

1 Ответ

0 голосов
/ 02 января 2019

согласно эта ссылка , формат

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})

и для вашего кода это может быть так

<%= form.collection_select(:post_category, :post_category_id, PostCategory.all, :id, :name, prompt: true) %>

обновление 2:

внутри вашего blog_controllers

# white list parameter 
  def blog_params
    params.require(:blog).permit(
      :post_category_id,
      ... others fields
    )
  end 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...