Ruby on rails 如何使用wicked gem更新活动存储附件
我在步骤表单向导中有更新或跳过属性的步骤。我可以更新所有其他步骤,没有任何问题,除了包含图像的步骤,我只能在上载新图像时更新该步骤。如果我尝试在没有新图像的情况下对其进行更新,则会导致Ruby on rails 如何使用wicked gem更新活动存储附件,ruby-on-rails,rails-activestorage,wicked-gem,Ruby On Rails,Rails Activestorage,Wicked Gem,我在步骤表单向导中有更新或跳过属性的步骤。我可以更新所有其他步骤,没有任何问题,除了包含图像的步骤,我只能在上载新图像时更新该步骤。如果我尝试在没有新图像的情况下对其进行更新,则会导致参数丢失或值为空:business 向导控制器 steps :basic_info, :company_info, :logo,:category, :address def show case step when :basic_info when :company_info
参数丢失或值为空:business
向导控制器
steps :basic_info, :company_info, :logo,:category, :address
def show
case step
when :basic_info
when :company_info
when :logo
when :banner
when :category
when :address
end
.......
render_wizard
......
def update
case step
when :basic_info
@business.update(business_params)
when :company_info
@business.update(business_params)
when :logo
@business.update(business_params)
when :banner
@business.update(business_params)
........
render_wizard @business
.....
private
def set_business
@business = Business..find(params[:business_id])
end
def business_params
params.require(:business).permit(
.......
:logo,
......
./models/business.rb
类业务
徽标向导窗体
.......
......
除徽标步骤外,所有其他步骤均按预期工作。如果我跳过logo步骤,它可以正常工作。
您只需单击submit按钮并进入下一步,而无需上传新图像
class Business < ApplicationRecord
.......
has_one_attached :logo
.......
<%= form_for @business, url: business_business_wizard_path, method: :put do |form|%>
.......
<%= form.label :logo%>
<%= form.file_field :logo %>
<%=form.submit %>
......