Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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 如何从rails中的其他数据库表呈现选项字段?_Ruby On Rails - Fatal编程技术网

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">
#&lt;Responsibility::ActiveRecord_Relation:0x00007f3f72cc7eb0&gt;
</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">
#&lt;Responsibility::ActiveRecord_Relation:0x00007f3f72cc7eb0&gt;
</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">
#&lt;Responsibility::ActiveRecord_Relation:0x00007f3f72cc7eb0&gt;
</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">
#&lt;Responsibility::ActiveRecord_Relation:0x00007f3f72cc7eb0&gt;
</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
之后缺少逗号: