Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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 RoR:如何在表格上显示/打印来自其他模型的数据?_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails RoR:如何在表格上显示/打印来自其他模型的数据?

Ruby on rails RoR:如何在表格上显示/打印来自其他模型的数据?,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我有一个名为“Notes”的表,在_form.html.erb中有一个下拉列表,其中列出了一个名为subject的模型中的主题列表,该模型有效 <div class="field"> <%= f.label :subject, class: 'dropdown' %> <div class="dropdown"> <div class="field"> <%= f.collection_sel

我有一个名为“Notes”的表,在_form.html.erb中有一个下拉列表,其中列出了一个名为subject的模型中的主题列表,该模型有效

<div class="field">
    <%= f.label :subject, class: 'dropdown' %>
      <div class="dropdown">
      <div class="field">

        <%= f.collection_select(:id, Subject.all, :id, :subject) %>

  </div>
主题图式

create_table "subjects", force: :cascade do |t|
    t.string   "subject"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end
我所要做的就是在主题下拉列表中选择一个选项,从主题模型填充,在notes表上显示/打印。我是rails的新手。非常感谢任何帮助,如果需要,将提供更多代码。谢谢

 <%= f.collection_select(:subjectid, Subject.all, :id, :subject) %> 

希望这对您有所帮助如果没有,请在您的问题中更具体一点

看起来您正在寻找一个“has_one”活动记录关联。为了让您能够调用
note.subject
,您需要设置此关联。下面是它的外观

这允许您调用:

<%= f.select :subject, options_for_select(Notes.subject_array) %>

这将以读者友好的方式(用空格代替下划线等)返回标记在枚举中的所有主题。枚举可能很棘手,但这是为模型属性(例如案例中的注释主题)生成可能值的定义列表的一种好方法。这样,您甚至不需要主题模型。

我不确定您希望实现什么,但是,定义动作
主题
对您没有任何好处,可能作业应该在
表演
动作中完成。谢谢,我有一个下拉选项菜单,其中包含从主题表填充的主题列表,我想将用户选择的选项打印到notes表,如上所述。我尝试了你的建议,但我仍然得到了未定义的方法'subject'为零:NilClassok非常感谢,我对你的建议有一些成功。现在唯一的问题是它正在打印主题id而不是名称,但至少打印了一些东西。哇!谢谢,事实上,我已经用我上面复杂的方式让它工作了,但是你的帖子对未来也是一个很好的建议!我真的很感激。FWIW我接受了上面的建议,并做到了,它起了作用
 <%= f.collection_select(:subjectid, Subject.all, :id, :subject) %> 
@notes = Note.find_by_subjectid(:subjectid)
class Notes < ActiveRecord::Base
  has_one :subject
end
class AddUserToUploads < ActiveRecord::Migration
  def change
    add_reference :subjects, :notes, index: true
  end
end
 enum subject: [ :none, :math, :science, :history, ...etc ]
<%= f.select :subject, options_for_select(Notes.subject_array) %>
def subject_array
  a = Notes.subjects.map do |k,v|
    [k.humanize, k]
  end
  return a
end