此问题已修复。我想我已经离开了:method =>当我从我写的另一个视图中复制它时,将其放入窗体帮助器中。虚惊。Rails 3命名空间路由错误 - 路由存在但未起作用
我在我的轨道3应用程序中显示'耙路线',但结束了提高无路线匹配错误的路线。
我正在尝试创建一个命名空间路由,用于在current_user管理的公司下创建和添加新用户。命名空间是'公司'。应该处理此操作的控制器是'users_controller',位于controllers-> company文件夹内。
我的routes.rb文件包含以下代码:
namespace :company do
resources :users
resources :manage, :only => [:show,:edit,:update]
end
devise_for :users
我的APP-> controllers->公司文件夹下users_controller.rb包含此代码:
def new
@user = current_user.company.users.new
end
def create
@user = current_user.company.users.create(params[:user])
if @user.save
flash[:notice] = "Successfully Added New User"
redirect_to company_path(current_user.company.id)
else
flash[:warn] = "Correct Errors and Resubmit"
# render :action => 'new'
end
end
视图的创建action-> app-> views-> company-> users-> create.html.erb包含:
<h2>Adding User for <%= current_user.company.name %></h2>
<%= form_for(@user, :url => company_users_path) do |f| %>
<p><%= f.label :email %><br />
<%= f.email_field :email %></p>
<p><%= f.label :first_name %><br />
<%= f.text_field :first_name %></p>
<p><%= f.label :last_name %><br />
<%= f.text_field :last_name %></p>
<p><%= f.label :password, "New Password" %><br />
<%= f.password_field :password %></p>
<p><%= f.label :password_confirmation, "Confirm New Password" %><br />
<%= f.password_field :password_confirmation %></p>
<p><%= f.submit "Add User" %></p>
<% end %>
<%= link_to "Back", :back %>
最后当我运行'耙路线的命令我得到这个:
company_users GET /company/users(.:format) {:action=>"index", :controller=>"company/users"}
POST /company/users(.:format) {:action=>"create", :controller=>"company/users"}
new_company_user GET /company/users/new(.:format) {:action=>"new", :controller=>"company/users"}
edit_company_user GET /company/users/:id/edit(.:format) {:action=>"edit", :controller=>"company/users"}
company_user GET /company/users/:id(.:format) {:action=>"show", :controller=>"company/users"}
PUT /company/users/:id(.:format) {:action=>"update", :controller=>"company/users"}
DELETE /company/users/:id(.:format) {:action=>"destroy", :controller=>"company/users"}
'新'行动呈现就好。我提交表单后收到的错误是:
Routing Error
No route matches "/company/users
我使用的用于身份验证的色器件的宝石,并能提供有关我的应用程序的更多细节,如果需要的话。到目前为止,我添加的所有内容都很棒。我猜测它与我如何定义命名空间有关。我对rails还是比较新的,这是我第一次尝试命名空间路由。
我很抱歉,如果我提供的信息太多或太少。任何帮助是极大的赞赏。
我试过这个,我仍然收到同样的错误。我想这可能与设计认证宝石有关,但我可能会在这里走错方向。我有另一个名为signup_controller的控制器,它可以创建用户帐户和公司。唯一真正的区别在于命名空间。 –
不知道为什么这不起作用,我第一次重新提交表单,但它结束后再次尝试修复它。我猜这个表格在第一次刷新后没有重新加载。非常感谢lucapette! –
不客气。很高兴工作! – lucapette