【问题标题】:Strange undefined method model_name issue奇怪的未定义方法模型名称问题
【发布时间】:2016-11-10 00:45:10
【问题描述】:

我想用嵌套属性编辑我在数据库中的记录。在我的控制器中,我有:

def edit
  @chocolate = Chocolate.new.kinds.find_by_id(params[:chocolate_id])
end

在我的edit.html.erb 我有:

form_for @chocolate do |choco|

但它给了我下一个错误:

undefined method model_name issue

我不明白为什么它会给我这样的错误。有什么选择吗?

【问题讨论】:

  • 从 Chocolate.new.kinds.find_by_id(params[:chocolate_id]) 中删除 .new

标签: ruby-on-rails ruby nested-attributes


【解决方案1】:

这些方法并不是真的要以那种方式混合在一起。

我猜你正在尝试做这样的事情:

@chocolate = Chocolate.includes(:kinds).find(params[:chocolate_id])

然后您正在数据库中查询 Chocolate 和关联的 Kind 记录,而不是尝试实例化新记录。

【讨论】:

  • 啊,我明白了!但在那种情况下,它给了我Couldn't find Chocolate without an ID。但我通过:chocolate_id 发送它的 ID。没有?
  • 你的路线是什么样的?也许 ID 可以在params[:id] 获得?我猜不出你。
猜你喜欢
  • 1970-01-01
  • 2013-07-03
  • 1970-01-01
  • 1970-01-01
  • 2017-09-11
  • 1970-01-01
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
相关资源
最近更新 更多