Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么打印父对象而不是值?_Ruby On Rails - Fatal编程技术网

Ruby on rails 为什么打印父对象而不是值?

Ruby on rails 为什么打印父对象而不是值?,ruby-on-rails,Ruby On Rails,我试图显示对象值的集合,但却得到了它 这是我的controller.rb 这是我的view.html.haml 这是两种模型的schema.rb create_table "promo_codes", id: :serial, force: :cascade do |t| t.string "code", null: false end create_table "helpdesks", id: :serial, force: :cascade do |t| t.string "nam

我试图显示对象值的集合,但却得到了它

这是我的controller.rb

这是我的view.html.haml

这是两种模型的schema.rb

create_table "promo_codes", id: :serial, force: :cascade do |t|
  t.string "code", null: false
end

create_table "helpdesks", id: :serial, force: :cascade do |t|
  t.string "name"
end
如你所见,我将@pizzas作为比较。但是对于pizza,我得到的是我在控制器中查询的对象名,而不是促销代码值

我为@pizzas和@promo_代码做了puts,得到了相同的结果类型,但不太清楚为什么1得到了想要的值,而另一个没有

我应该用谷歌搜索什么来指出正确的方向? 谢谢

您需要在PromoCode模型中实现to_。 def至美国 名称或要显示的其他字段 终止

在控制器促销代码上,如下所示

  @@promo_codes = PromoCode.all.order(:code)
collection: @promo_codes
和渲染视图,如下图所示

  @@promo_codes = PromoCode.all.order(:code)
collection: @promo_codes
更新

尝试以下方法

 = f.input :promo_code_id, collection: @promo_codes, label_method: :code, value_method: :serial, label: "Promo Code", include_blank: false, class: "form-control"

展示你的比萨饼模型和促销代码。在这两种模型中,是否都有重写的.to_或其他内容?没有.to_。型号是一样的。对不起,那是个拼写错误。我确实只放了一个@only@IqlaasIsmail更新了答案,试试看发生了什么事吧@fool dev,请告诉我你搜索了什么?:哦!我没有搜索任何东西,只是从我现有的项目中复制并修改了我的答案@IqlaasIsmailI不必在我的比萨饼模型中添加,但为什么它会起作用呢?我不确定,但可能字段名在这个角色中起作用。