私のアプリには多くのドリルを含むレッスンがあります。
レッスンを見ているときに、新しいドリルを作成し、それらにlesson_idを自動的に割り当てられるようにしたいと考えています。
これまでのところ、私が持っているのは、レッスンの id を渡すレッスンの show.html.erb 内のリンクです。次のようになります。
<%= link_to t('.new', :default => t("helpers.links.new")),
new_drill_path(lesson_id: @lesson.id), :class => 'btn' %>
これにより、lesson_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
ただし、このコードは私には臭いようです。それを行うためのよりレール的な方法があるべきだと思われますが、それが何であるかわかりません。