【问题标题】:Cant add a second dropdown in my form无法在我的表单中添加第二个下拉列表
【发布时间】:2014-08-31 21:07:58
【问题描述】:

我正在尝试向我的应用程序中的表单添加第二个下拉菜单。我已经从第一个下拉列表中复制了代码并更改了值以匹配我试图从中提取值的类。当我删除第二个下拉菜单时,应用程序运行顺利,返回错误的是第二个菜单。

uninitialized constant ActionView::CompiledTemplates::Providers

如果我在代码中将“Providers.order”更改为“Provider.order”,它会返回此错误:

undefined method `provider_id' for #<Bill:0x007fbf62544ee8>

这是我的代码形式:

  <div class="field">
    <!-- Drop Down menu for categories -->
    <%= f.label :category_id %><br>
    <%= f.collection_select :category_id, Category.order(:name), :id, :name%>
  </div>

  <div class="field">
    <!-- Drop Down menu for providers -->
    <%= f.label :provider_id %><br>
    <%= f.collection_select :provider_id, Providers.order(:name), :id, :name%>
  </div>

【问题讨论】:

  • 你有一个名为 Provider 的模型吗?
  • 是的。我有一个完整的 mvc 供提供者参考类别。
  • 第一个错误是因为你有Providers而不是Provider。你的模型之间有什么关系?
  • 账单:belongs_to :category belongs_to :user belongs_to :provider has_many :reminders ------ A category: has_many :bills has_many :providers ------- A Provider: belongs_to :类别属于_to :bill
  • 它返回错误“undefined method provider_id for #:0x007fd6d53c4728>”与其他错误略有不同。这个是指班级,而不是像前一个那样计费。

标签: ruby-on-rails ruby forms drop-down-menu


【解决方案1】:

试试这个:

<div class="field">
  <!-- Drop Down menu for providers -->
  <%= label :provider %><br>
  <%= collection_select :provider, :provider_id, Provider.order(:name).all, :id, :name%>
</div>

【讨论】:

  • 返回两个错误中的第一个“未初始化的常量 ActionView::CompiledTemplates::Providers”,如果我将其更改为“Provider.order”,它会返回“未定义的方法 `merge' for :name :符号"
  • 查看编辑。尝试删除“f.”,根据这个答案:stackoverflow.com/questions/8147069/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-23
  • 2015-05-06
  • 1970-01-01
  • 2021-09-07
相关资源
最近更新 更多