Rails 3.1 выпадающее меню и несколько данных - PullRequest
0 голосов
/ 12 марта 2012

возможно сделать выпадающее меню, где поля меню представляют собой данные, полученные из нескольких таблиц mysql? Я объясню лучше: предположим, что у меня есть две модели «Hardwares» и «Brands», и предположим, что:

class Hardware < ActiveRecord::Base
belongs_to :brand
end

и

class Brand < ActiveRecord::Base
has_many :hardwares
end

и предположим, что аппаратная миграция:

class Hardwares < ActiveRecord::Migration

def self.up
  create_table "hardwares" do |t|
    t.column "model", :string
    t.column "id", :integer
     t.column "brand_id", :integer
  end
end

def self.down
  drop_table "hardwares"
end

Я бы хотел, чтобы каждый элемент выпадающего меню был примерно таким:

@hw=Hardwares.find(params[:id])

[@hw.brand.name,@hw.model]   <- Dropdown menu's element

Как я могу это сделать? Спасибо всем заранее

1 Ответ

1 голос
/ 12 марта 2012

Насколько я понимаю, вы хотите связать Оборудование с Проектом, но при перечислении Оборудования вы хотите включить название бренда, чтобы избежать списка номеров моделей.

Обновление :Определите в своей модели оборудования следующее:

def model_with_brand_name
  "#{self.brand.name} #{self.model}"
end

К сожалению, документы Rails API не позволяют напрямую ссылаться на методы, но вам нужно это collection_select.

В форме вы можетесоздайте меню выбора элементов, используя следующий метод:

<%= collection_select :project_id, Hardware.all, :id, :model_with_brand_name %>

Это обеспечит выпадающее меню, содержащее все названия брендов, позволяющие выбрать правильный для оборудования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...