0

ユーザー、プロジェクト、およびスレッド モデルを含む Rails アプリに取り組んでいます。ユーザーは、プロジェクトを作成またはアクセスし、そのプロジェクトに関するスレッドを作成できます。そのため、ユーザーはプロジェクト ページにアクセスして、メニューから [スレッドの作成] オプションを選択する場合があります。プロジェクトの「表示」ビュー内に、スレッド コントローラの「新規」および「表示」アクションのビューを表示したいと考えています。

私はここ 3、4 日間しか Rails を扱っていないので、現在のソリューションは非常に非効率的です。

この方法で、プロジェクト ページのスレッドの「新しい」フォームへのリンクを作成します。

<%= link_to "Create Thread", {controller: 'projects', action: 'show',
newthread: true} %>

プロジェクトの 'show' アクションは @newthread の値を保存し、プロジェクト ページが表示されるときに @newthread が設定されているかどうかを確認し、設定されている場合はフォームを表示して新しいスレッドを作成します。

この方法で新しいスレッドを作成できますが、フォームにエラーがある場合、スレッド フォームとそのエラー メッセージを含むプロジェクト ページをレンダリングする方法がわかりません。

この特定の問題を解決するにはどうすればよいですか? または、スレッド コントローラのビューが常にプロジェクトの「表示」ビュー内に表示されるように、2 つのリソースを編成するより良い方法はありますか?

ありがとう。

4

1 に答える 1

0

この場合の最良の選択肢は、ネストされたルートを使用することだと思います。

こちらをご覧ください: http://guides.rubyonrails.org/routing.html#nested-resources

プロジェクトの表示ビューを使用して、単純なループを使用して、プロジェクトに関連するスレッドを表示できます。

例えば:

プロジェクト管理者:

def show
    @project = Project.find(params[:id])
    @threads = @project.threads.all
end

ビューを表示:

<% @threads.each do |thread| %>
...
<% end %>

それが役立つことを願っています...

于 2012-05-26T23:25:30.023 に答える