我的应用程序有很多练习的课程。
当我查看课程时,我希望能够创建新的 Drills 并自动分配他们的课程 ID。
到目前为止,我所拥有的是课程的 show.html.erb 中的一个链接,该链接传入课程的 ID,如下所示:
<%= link_to t('.new', :default => t("helpers.links.new")),
new_drill_path(lesson_id: @lesson.id), :class => 'btn' %>
这会将 course_id 添加到 params 哈希中。通过在我的控制器中执行此操作,我想出了如何将参数传递给钻子:
def new
@drill = Drill.new
params.each do |key, value|
method = key.to_s + '='
method.to_sym
if @drill.respond_to? method
@drill.send method, value
end
end
end
但是,这段代码对我来说似乎很臭。似乎应该有一种更规范的方式来做到这一点,但我不知道它是什么。