我有我的持有人(将其视为一个关系表,其中包含属于特定持有人的所有问题以及持有人特定数据,如姓名)显示页面问题列表和新问题链接的链接。
<% @questions.each do |question| %>
<%= question.question %>
<%= question.answer %>
<%= link_to "Edit Question", edit_question_path(question) %>
<br />
<% end %>
<%= link_to "New Question", new_question_path %>
这样做的目的是在创建新问题时设置holder_id。如果重要的话,我在模型中有belongs_to和has_many设置。
我尝试了一些不同的东西,例如<%= link_to "New Question", new_question_path(@holder) %>
但只是将格式设置为@ holder.id。我想,我可以滥用它来使它工作,但这是一个非常丑陋的黑客。
我听说有人使用嵌套路线,而不是超过2或3深。因此,必须有一种方法可以在不使用嵌套路由的情况下完成此操作。
答案 0 :(得分:2)
我想你可以这样做。
在您的新链接:
<%= link_to "New Question", new_question_path(:holder_id => @holder.id)
此链接会将您的请求发送 holder_id 作为 question_controller.rb 中新操作的参数。所以你可以像这样使用它:
def new
holder_id = params[:holder_id]
# Do something with this id
# ...
end