Ruby on rails 如何从rails中的其他数据库表呈现选项字段?
我有一个模型Ruby on rails 如何从rails中的其他数据库表呈现选项字段?,ruby-on-rails,Ruby On Rails,我有一个模型Responsibility,其中有一个文本责任域。另一个模型是Stage,在Stage表单字段中有一个text\u字段responsibility我想从responsibility表中呈现一个选项列表,我如何在rails中做到这一点 routes.rb 资源:项目可以 资源:责任 资源:阶段 结束 stage\u form.html.erb “必需”%> 如何在“阶段责任表单”字段中将责任列表作为选项呈现 尝试的是: stage\u form.html.erb stage
Responsibility
,其中有一个文本责任域。另一个模型是Stage
,在Stage
表单字段中有一个text\u字段
responsibility
我想从responsibility
表中呈现一个选项列表,我如何在rails中做到这一点
routes.rb
资源:项目可以
资源:责任
资源:阶段
结束
stage\u form.html.erb
“必需”%>
如何在“阶段责任表单”字段中将责任列表作为选项呈现
尝试的是:
stage\u form.html.erb
stages\u controller.rb
def new
@stage = Stage.new
@project = Project.find(params[:project_id])
@responsibilities = @project.responsibilities
end
我能够呈现表单,但在“职责”字段中,并没有一个职责作为选项访问。接受作为第二个参数的字符串,该字符串包含作为字符串的选项。
Rails提供了一些有助于生成这些
标签
,
如果使用浏览器的开发人员工具检查
标记的html代码,您将看到如下内容:
<select name="colors[]" id="colors" multiple="multiple">
#<Responsibility::ActiveRecord_Relation:0x00007f3f72cc7eb0>
</select>
<%= select_tag "colors", options_from_collection_for_select(@responsibilities, :id, :name) , multiple: true %>
<div>
<%= form.label :responsibility %>
<%= form.collection_select :responsibility, @responsibilities, :id, :name, prompt: true %>
</div>
还有另一种使用FormBuilder方法构建选择字段的方法。它可能看起来像这样:
<select name="colors[]" id="colors" multiple="multiple">
#<Responsibility::ActiveRecord_Relation:0x00007f3f72cc7eb0>
</select>
<%= select_tag "colors", options_from_collection_for_select(@responsibilities, :id, :name) , multiple: true %>
<div>
<%= form.label :responsibility %>
<%= form.collection_select :responsibility, @responsibilities, :id, :name, prompt: true %>
</div>
我希望这个答案会有用。接受作为第二个参数字符串的选项作为字符串。
Rails提供了一些有助于生成这些
标签
,
如果使用浏览器的开发人员工具检查
标记的html代码,您将看到如下内容:
<select name="colors[]" id="colors" multiple="multiple">
#<Responsibility::ActiveRecord_Relation:0x00007f3f72cc7eb0>
</select>
<%= select_tag "colors", options_from_collection_for_select(@responsibilities, :id, :name) , multiple: true %>
<div>
<%= form.label :responsibility %>
<%= form.collection_select :responsibility, @responsibilities, :id, :name, prompt: true %>
</div>
还有另一种使用FormBuilder方法构建选择字段的方法。它可能看起来像这样:
<select name="colors[]" id="colors" multiple="multiple">
#<Responsibility::ActiveRecord_Relation:0x00007f3f72cc7eb0>
</select>
<%= select_tag "colors", options_from_collection_for_select(@responsibilities, :id, :name) , multiple: true %>
<div>
<%= form.label :responsibility %>
<%= form.collection_select :responsibility, @responsibilities, :id, :name, prompt: true %>
</div>
我希望这个答案会有用。我检查了您的选择标签是否正确,现在的问题是@project是否有内容,@project.responsibilities是否有内容我检查了您的选择标签是否正确,现在的问题是@project是否有内容,@project.responsibilities是否有内容伟大的答案,注意到一个小的语法错误,在
@responsibility
之后缺少逗号:
很好的答案,注意到一个小的语法错误,在@responsibility
之后缺少逗号: