0

人々が私を理解していないと思うので、私は自分の質問をより明確にしようとしています:

私は次のアプリケーションを持っています:RUBY ON RAILSのTODO LIST。

次のようなものを作成したい:

ここに画像の説明を入力

最初の部分 (Tasks Workers) の作成に成功しましたが、name、num_of_tasks、num_tasks_left のみです。

今、私は「Show Tasks」を作成したいと思います。

ユーザーが「タスク」のリンクを押すと、すべてのタスク (編集と削除のオプションを含む) を含むページに移動します。

たとえば、ユーザーが「アロン」という名前の人物の行にある「タスク」のリンクを押すと、2 番目の部分 (タスク オブ アロン) を表示するページに移動します。

この出力を得るために何を追加する必要がありますか? とりあえず私はtasks_controllerを持っています。

別のことを説明する前に、最初の部分 (タスク ワーカー) についてお知らせしたいと思います。name という変数があります。各行に、変数名を出力します (彼はすべてのデータベースを渡します)。

次のステップを実行できないのはなぜですか?

1) tasks_controller に変数を追加します。

def show_tasks
    @tasks = Task.where(:name => params[:name])
    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @tasks }
    end
end

2) 定義: 2 番目の部分 (Tasks Of X) を表示する show_tasks.html.erb

3) 次の方法で index.html.erb にリンクを作成します。

<td><%= link_to 'tasks', show_tasks_path(name) %></td>

次に、各行で「name」変数が show_tasks.html.erb に送信されます。

手伝ってくれてありがとう!

4

1 に答える 1

1

ネストされたリソースを使用する必要があります。Google は、それに関するドキュメントを見つけるお手伝いをします。(またはここをクリック: http://guides.rubyonrails.org/routing.html#nested-resources )

基本的に、あなたのケースには 2 つのコントローラーがあります: TasksController と WorkersController (または TaskWorkersController)

routes.rb には、次のようなものが含まれている必要があります。

# routes.rb
resources :workers do
  resources :tasks
end

これにより、必要なパスとヘルパーが生成されます。ドキュメントを参照してください。方法が見つからない場合は、少しお手伝いできますが、それほど難しくはありません ;)

いくつかのヒント:

あなたshow_tasksのアクションindexは、次のような TasksController のアクションになります。

@tasks = Task.where(worker_id: params[:id]) # works if your declared Task belongs_to Worker

すべてのワーカー (Alon、Dan など) を表示するindexアクションは、WorkersController のアクションになります。

幸運を!

于 2012-12-22T23:27:41.797 に答える