Ruby on rails 轨道脚手架属于-show<;MyClass:xxxx>;

Ruby on rails 轨道脚手架属于-show<;MyClass:xxxx>;,ruby-on-rails,scaffolding,belongs-to,Ruby On Rails,Scaffolding,Belongs To,经验丰富的Java开发人员,Rails新手-了解脚手架中的关系 我看到了另一个这样的答案 并遵循rails生成scaffold\u控制器obj:references模式 索引/显示页面显示的是#而不是我想要的字符串-目标类(的父端属于)中是否有我需要重写的方法来指定标识符 同样在编辑视图中,它看起来像是试图将引用修改为字符串而不是下拉列表-是否需要指定一些内容来实现这一点 谢谢 顺便说一句,我能够在Django和Grails中使用类似的脚手架,在那里外键变成了下拉菜单;我希望Rails同样简单

经验丰富的Java开发人员,Rails新手-了解脚手架中的关系

我看到了另一个这样的答案

并遵循
rails生成scaffold\u控制器obj:references
模式

索引/显示页面显示的是
#
而不是我想要的字符串-目标类(
的父端属于
)中是否有我需要重写的方法来指定标识符

同样在编辑视图中,它看起来像是试图将引用修改为字符串而不是下拉列表-是否需要指定一些内容来实现这一点

谢谢


顺便说一句,我能够在Django和Grails中使用类似的脚手架,在那里外键变成了下拉菜单;我希望Rails同样简单,我只是错过了它。

您可以在实例上重写
\to_s
方法,因为它就是被调用的方法

class FooDoodle < ActiveRecord::Base
  def to_s
    name
  end
end

谢谢你给我们的提示。假设列表足够小,有没有办法生成下拉列表?或者我必须手动生成下拉列表?它看起来像什么?@wrs在那里,我添加了一个例子。
class FooDoodlesController < ApplicationController
  def edit
    @foodoodle = FooDoodle.find(params[:id])

    @friends = @foodoodle.possible_friends # or else
  end
end
# _form.html.erb

<%= form_for @foodoodle do |f| %>
  <%= f.label :friend %>
  <%= f.select :friend, @friends.map{ |p| [p.to_s, p.id] } %>