3

我有两张桌子:表格,问题。想法很容易,每个表格都有很多问题。制作了桌子

表格 = | 编号 | 标题 |

问题= | 编号 | 标题 | 输入 | form_id |

以及如何猜测 form_id 是表单 ID 的关键。

class FormsController < ApplicationController
 active_scaffold :form
end

class QuestionsController < ApplicationController
 active_scaffold :question
end

class Question < ActiveRecord::Base
 has_one :form
end

class Form < ActiveRecord::Base
 has_many :question
end

我想用可用形式选择一个活动支架(问题)。现在我只能输入表单的id,而不能通过下拉菜单选择它。我应该如何配置 rails 或 activescaffold?

谢谢。对不起我的英语不好 :)

4

3 回答 3

4

您需要向控制器添加一些配置。

class QuestionsController < ApplicationController
  active_scaffold :question do |config|
    config.columns = [:id, :title, :input, :form_id]
    config.columns[:form_id].ui_type = :select
  end
end
于 2009-05-15T21:06:07.287 回答
4

如果你希望让一个下拉菜单与 activescaffold 一起工作而不会感到头疼,你必须遵循这个简单的规则:只有当你引用在 belongs_to 中声明的关联时,下拉菜单才会起作用。混合以前的答案,您可以:

在您的模型中遵循rails 方式。尊重复数和变形。然后将它们写成建议 allesklar:

class Form < ActiveRecord::Base
 has_many :questions
end

class Question < ActiveRecord::Base
 belongs_to :form
end

在与“belongs_to”相关联中使用单数名称非常重要,在这种情况下:form

在您的控制器中使用 Sarah Mei 的答案,但稍作更改,使用您在 belongs_to 中声明的关联名称,然后您将拥有类似这样的内容

class QuestionsController < ApplicationController
  active_scaffold :question do |config|
    config.columns = [:id, :title, :input, :form]
    config.columns[:form].ui_type = :select
  end
end

如果您使用具有多个字段的模型,请记住使用“def to_label”,因为 ActiveScaffold 无法猜测您要显示的字段。

问候

于 2009-05-19T16:18:37.400 回答
0

我不确定 active_scaffold 但您在表单和问题模型中的关系陈述中有一些错误。我认为这就是你想要的:

class Form < ActiveRecord::Base
 has_many :questions
end

class Question < ActiveRecord::Base
 belongs_to :form
end

希望这可以帮助。

于 2009-05-16T09:33:22.750 回答