Ruby on rails RoR:如何在表格上显示/打印来自其他模型的数据?
我有一个名为“Notes”的表,在_form.html.erb中有一个下拉列表,其中列出了一个名为subject的模型中的主题列表,该模型有效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
<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