当我在Rails应用程序中更新用户并更新记录时,我经常需要按两次“提交”按钮才能重定向到我想要的页面。我第一次提交按钮时,页面似乎再次重定向到编辑页面,但随后闪烁消息不会显示。当所有记录都已满时,它应该重定向到显示页面,但仅在第二次单击后才会这样做。我在控制器操作中也有@asset = @user.asset.update_attributes()
。
以下是我的代码:
def update
@user.update(user_params)
if @user.asset
@asset = @user.asset.update_attributes(:asset_one_type => Asset::IMAGE)
else
@asset = @user.create_asset(:asset_one_type => Asset::IMAGE)
end
@incompleteArray = formFinished @user
if @incompleteArray.length > 0
@incomplete = true
else
@incomplete = false
end
if @incompleteArray.length == 0
p 'its doing this'
redirect_to action: 'show'
else
p 'its doing that else'
flash.now[:notice] = 'Please fill out the required fields.'
redirect_to action: 'edit' , incomplete: @incomplete
end
end
答案 0 :(得分:1)
如果是这样,您可能需要在执行任何其他操作之前检查更新是否成功。如果它工作,你仍然有两个选择。 incompleteArray是否为空。
def update
if @user.update(user_params)
if @user.asset
@asset = @user.asset.update_attributes(:asset_one_type => Asset::IMAGE)
else
@asset = @user.create_asset(:asset_one_type => Asset::IMAGE)
end
incompleteArray = formFinished @user # What does this do?
incomplete = incompleteArray.length > 0
if @incompleteArray.length == 0
p 'its doing this'
redirect_to action: 'show'
else
p 'its doing that else'
flash.now[:notice] = 'Please fill out the required fields.'
redirect_to action: 'edit' , incomplete: incomplete
end
else
#whatever happens when @user.update fails
end
end
如果你没有在视图中使用它们,也不要使用这么多@variables。