创建新用户时出现Missing Template错误
缺少模板admin/citizens/create,admin/application/create,application/create with {:locale => [:en],:formats => [:html] ,:variants => [],:handlers => [:erb,:builder,:raw,:ruby,:coffee,:haml,:jbuilder,:rabl]}。搜索:*“/ Users/aa/Sites/Active Shehri/activeshehri-mongo/app/views”*“/Users/aa/.rvm/gems/[email protected]/gems/wiselinks-1.2.1/app/views“*”/Users/aa/.rvm/gems/[email protected]/gems/rails_admin-0.6.6/app/views“*”/Users/aa/.rvm/gems/ruby [email protected]/gems/kaminari-0.16.1/app/views“*”/Users/aa/.rvm/gems/[email protected]/gems/devise_invitable-1.5.5/app/views “*”/Users/aa/.rvm/gems/[email protected]/gems/twitter-bootstrap-rails-3.2.2/app/views“*”/Users/aa/.rvm/gems/ruby [email protected]/gems/devise-3.4.1/app/views”创建新用户时出现Missing Template错误
.....这里是代码
= form_for [:admin, @user] do |f|
.row
.col-lg-6
.panel
.panel-heading Edit Landmark
.panel-body
.form-group
= f.label :first_name
= f.text_field :first_name, class: 'form-control'
.form-group
= f.label :last_name
= f.text_field :last_name, class: 'form-control'
.form-group
= f.label :email
= f.text_field :email, class: 'form-control'
.form-group
= f.label :gender
= f.text_field :gender, :class => 'form-control'
.form-group
= f.label :contact_no
= f.text_field :contact_no, :class => 'form-control'
.form-group
= f.label :address
= f.text_field :address, class: 'form-control'
= f.submit 'Save', class: 'btn btn-primary btn-submit btn-lg pull-right'
= link_to "Back", admin_home_user_panel_path, class: 'btn btn-primary btn-submit btn-lg pull-left'
我认为你需要添加其他部分来处理用户不保存时
def create
@user = User.new(new_params)
if @user.save
redirect_to admin_home_user_panel_path
else
#do render or redirect_to
end
end
是的,当我把代码中的其他部分重定向到新页面。但它创建我的用户为什么不保存它?为什么@ user.save不工作? –
可能是你有一些验证错误。在其他部分使用渲染。所以缺少模板错误现在不见了 –
的错误是因为... e您的views/admin/citizens
文件夹中没有名为create.html.erb
的文件。
在Rails中,如果你不告诉它重定向或渲染在控制器方法的最后一个特定的模板,它推断出一个模板来渲染代替,因此:
class UsersController < ApplicationController
def create
@user = User.create(name: params[:name])
end
end
如果create方法在这里运行,用户将被创建,然后Rails将尝试渲染模板views/users/create.html.erb
。通常情况下,你会不会有一个同名的模板 - 你可能会做这样的事情:
class UsersController < ApplicationController
def create
@user = User.create(name: params[:name])
redirect_to user_path(@user)
end
end
或者:
class UsersController < ApplicationController
def create
@user = User.create(name: params[:name])
render :awesome_template
end
这一切都在这里: http://guides.rubyonrails.org/v2.3.11/action_controller_overview.html#methods-and-actions
使用redirect_to或呈现on ce对象保存在您的创建操作中。因为您没有create.html.erb –
您确定您的app/views/admin/citizen文件夹中有create.html –
已使用redirect_to admin_home_user_panel_path –