gpt4 book ai didi

ruby-on-rails - 使用 Active admin 在 Ruby on Rails 中缺少模板

转载 作者:数据小太阳 更新时间:2023-10-29 08:11:00 25 4
gpt4 key购买 nike

我的项目有一个错误,在事件管理中它一直告诉我缺少模板。帮助做什么我想发生的事情是能够在事件管理员中添加员工用户

Missing template admin/vendor/update_add_staff, active_admin/resource/update_add_staff, active_admin/base/update_add_staff, inherited_resources/base/update_add_staff, application/update_add_cat with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :arb, :jbuilder, :slim, :csvbuilder]}. Searched in: /Users/James/work-files/apps/views "/Users/james/.gem/gems/devise-4.0.3/app/views" * "/Users/james/.gem/bundler/gems/apipie-rails-1f7d8419b7f4/app/views" * "/Users/james/.gem/bundler/gems/activeadmin-09d00c2d9638/app/views" * "/Users/james/.gem/gems/kaminari-core-1.1.1/app/views"

下面是代码:

admin/vendor.rb开始

“添加”按钮连接到操作项:

  action_item :edit_add_staff, only: [:show, :edit] do
link_to('Add cat', edit_add_staff_admin_vendor_path(resource))
end

然后操作项连接到:

<%= simple_form_for([:admin, resource], url: update_add_staff_admin_vendor_path(resource), method: :put) do |f| %>
<div class="input text optional">
<label for="vendor_staff_users">Current Staff List</label>
<div class="indent-display">
<% resource.staff_users.each do |staff| %>
ID: <%= staff.id %> | <%= staff.full_name %> <br/>
<% end %>
</div>
</div>

<div class="input optional">
<label class="optional" for="vendor_staff_users">Staff ID</label>
<%= text_field_tag('vendor[staff_user]') %>
<span class="hint">Hint: Enter the staff user id</span>
</div>

<%= f.submit 'Add Staff' %>

<% end %>

然后它被链接到:

member_action :update_add_staff, method: :put do
u = User.find(params[:vendor][:staff_user])
if u.staff_user == false
u.staff_user = true
u.vendor_id = id
binding.pry
u.save
redirect_to admin_vendor_path(resource)
end
end

这是路线:

 resources :vendors, only: [:show, :update] do
resources :users, controller: 'vendors/vendor_users' do
member do
post :update_add_staff

我希望有人能帮助我,我真的不知道该怎么做

最佳答案

@Pavel 是对的。您的 member_action 有一个 if 语句。如果 u.staff_user == false,那么它将redirect_to admin_vendor_path(resource),我认为这是有效的。否则,不会发生渲染或重定向,因此 Rails 将默认尝试渲染,并且会尝试渲染操作 update_add_staff

要解决这个问题,您可以在 if 语句中添加一个 else 部分,或者将 redirect_to 移到 if block 之外。

# This should resolve the issue
member_action :update_add_staff, method: :put do
u = User.find(params[:vendor][:staff_user])
if u.staff_user == false
u.staff_user = true
u.vendor_id = id
binding.pry
u.save
else
flash[:error] = "Access denied"
end

redirect_to admin_vendor_path(resource)
end

关于ruby-on-rails - 使用 Active admin 在 Ruby on Rails 中缺少模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53444544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com