現在のプロジェクトの ID をチケット コントローラー (プロジェクトのチケットを作成) に渡したいと思います。これを以下で実行します。ただし、以下の方法では、次のリンクが表示されます。
tickets/new?project_id=8
...このようにしたいとき:
tickets/new
...コントローラーでproject_idにアクセスできるようにしたいのですが。
これどうやってするの?明確にするために: project_id を URL の一部にしたくありません。(何らかの方法で) パラメーターとしてコントローラーに渡したいだけです。
ビューから:
<h1><%= @project.title %></h1> <-- the project's attributes is reachable here
<%= link_to "Create ticket", new_ticket_path(:project_id => @project.id), :class => "btn edit_button" %>
チケット コントローラー:
1. class TicketsController < ApplicationController
2. def new
3. @ticket = Ticket.new
4. @id = params[:project_id]
5.
6. @project = Project.find(@id)
7. end
8. end
link_to が指すルートは次のようになります。
new_ticket GET /tickets/new(.:format) tickets#new