1

私は自分の所有者に(特定の所有者に属するすべての質問と名前などの所有者固有のデータを保持する関係テーブルと考えてください)、質問のリストと新しい質問のリンクへのリンクを表示します。

<% @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を超えないようにする人がいると聞きました。したがって、ネストされたルートを使用せずにこれを行う方法が必要です。

  1. ネストされたルートを使用せずにこれを行う方法があるという点で正しいですか?それは何ですか?
  2. この例では、ネストされたルートが良いまたは悪いアイデアになるのはなぜですか?
4

1 に答える 1

2

このようなことができると思います。
新しいへのリンクで:

<%= link_to "New Question", new_question_path(:holder_id => @holder.id)

このリンクにより、 requestは、 question_controller.rbの新しいアクションへのパラメーターとしてholder_idを送信します。したがって、次のように使用できます。

def new
  holder_id = params[:holder_id]
  # Do something with this id
  # ...
end
于 2012-06-20T14:31:02.483 に答える