私は2つのモデルを持っています
class Project < ActiveRecord::Base
attr_accessible :created_at, :name, :status, :company_id
has_many :phases, :dependent => :destroy
end
class Phase < ActiveRecord::Base
attr_accessible :created_at, :date_due, :name, :project_id, :status
belongs_to :project
end
新しいフェーズが作成されたら、新しいフェーズが属するプロジェクトのプロジェクトの表示ページにユーザーを転送したいと思います。
私はこれといくつかのバリエーションを試しましたが、それを書くための最良の方法がよくわかりません:
def create
@phase = Phase.new(params[:phase])
respond_to do |format|
if @phase.save
redirect_to @phase.project
else
format.html { render action: "new" }
format.json { render json: @phase.errors, status: :unprocessable_entity }
end
end
end
ありがとう!
編集1
レーキ ルート:
phases GET /phases(.:format) phases#index
POST /phases(.:format) phases#create
new_phase GET /phases/new(.:format) phases#new
edit_phase GET /phases/:id/edit(.:format) phases#edit
phase GET /phases/:id(.:format) phases#show
PUT /phases/:id(.:format) phases#update
DELETE /phases/:id(.:format) phases#destroy
projects GET /projects(.:format) projects#index
POST /projects(.:format) projects#create
new_project GET /projects/new(.:format) projects#new
edit_project GET /projects/:id/edit(.:format) projects#edit
project GET /projects/:id(.:format) projects#show
PUT /projects/:id(.:format) projects#update
DELETE /projects/:id(.:format) projects#destroy
編集2
更新されたコントローラー - 現在動作中です。Respond_to ブロックを削除する必要がありました (おそらく、リダイレクトの周りにさまざまな形式のオプションを含めることもできます)
def create
@phase = Phase.new(params[:phase])
if @phase.save
redirect_to project_url(@phase.project)
else
render action: "new"
end
end