【发布时间】:2011-08-18 13:35:11
【问题描述】:
创建与特定帐户关联的人员后,如何重定向回帐户页面?
account_id 通过 URL 参数传递给 CREATE Person 操作,如下所示:
http://localhost:3000/people/new?account_id=1
代码如下:
<h2>Account:
<%= Account.find_by_id(params[:account_id]).organizations.
primary.first.name %>
</h2>
<%= form_for @person do |f| %>
<%= f.hidden_field :account_id, :value => params[:account_id] %><br />
<%= f.label :first_name %><br />
<%= f.text_field :first_name %><br />
<%= f.label :last_name %><br />
<%= f.text_field :last_name %><br />
<%= f.label :email1 %><br />
<%= f.text_field :email1 %><br />
<%= f.label :home_phone %><br />
<%= f.text_field :home_phone %><br />
<%= f.submit "Add person" %>
<% end %>
class PeopleController < ApplicationController
def new
@person = Person.new
end
def create
@person = Person.new(params[:person])
if @person.save
flash[:success] = "Person added successfully"
redirect_to account_path(params[:account_id])
else
render 'new'
end
end
end
当我提交上述表格时,我收到以下错误消息:
Routing Error
No route matches {:action=>"destroy", :controller=>"accounts"}
为什么将 redirect_to 路由到 DESTROY 操作?我想通过 SHOW 动作重定向。任何帮助将不胜感激。
【问题讨论】:
-
rake routes并检查所有生成的路线,看看你错过了什么。 -
问题不在于缺少路线。他只是想路由到
account_path(nil)。
标签: ruby-on-rails ruby ruby-on-rails-3