它可以创建一个下拉菜单,其中菜单的字段是来自几个mysql表的数据?我解释得更好:假设我有两个模型"硬件"和"品牌"并假设:
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
以女巫的方式,我可以这样做吗? 提前谢谢大家
答案 0 :(得分:1)
据我了解,您希望将硬件与项目相关联,但在列出硬件时,您希望包含品牌名称以避免使用型号列表。
更新:在硬件模型中定义以下内容:
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 %>
这将提供一个包含所有品牌名称的下拉菜单,允许您为硬件选择正确的品牌名称。