用户有照片。当他们更新照片时,它会在数据库中成功更新,但不会在浏览器中更新。如果我打开另一个浏览器,我可以看到它已被更新。但是这个问题在所有浏览器中都会发生。有什么办法可以强制Rails在更新后显示新图像吗?
我在控制器中使用标准代码来更新user_params。
来自Heroku控制台
启动PATCH“/ community / 8” 由UsersController处理#update为HTML
参数:{“utf8”=>“✓”,“authenticity_token”=>“7zUIz7zxmYm8dssdSEGDHbddsieyVnwix8z / Fx / sxVzXqoLtxNq + 3sxfps8RsE6pV / XN5V46qhJdo1VpKLK8pF3wDmZNg ==”,“user”=> {“profile”=>“很酷的家伙。生活在海洋之下。“,”photo“=>#,@ original_filename =”som-tam-thai.jpg“,@ content_type =”image / jpeg“,@ headers =”Content-Disposition:form-data; name = \“user [photo] \”; filename = \“som-tam-thai.jpg \”\ r \ nConContent-Type:image / jpeg \ r \ n“>,”gender_type“=>”male“, “country”=>“US”},“id”=>“8”}
[1m [35mSQL(1.5ms)[0m UPDATE“users”SET“photo”= $ 1,“updated_at”= $ 2 WHERE“users”。“id”= $ 3 [[“photo”,“8.jpg”],[ “updated_at”,“2017-03-04 18:34:20.835477”],[“id”,8]]
如果我更新其他字符串的用户属性,它们将立即显示。只有照片需要重新启动浏览器才能显示更改。
答案 0 :(得分:0)
要查看新的更新图片,您需要使用def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
if @user.update(user_params)
redirect_to @user
else
render 'edit'
end
end
方法。它应该重定向到具有此特定ID的用户的个人资料。
<!-- Example Application.xml part from the Properties and modules element -->
<Modules>
<Module>
<Name>base</Name>
<Description>Base</Description>
<Class>com.wowza.wms.module.ModuleCore</Class>
</Module>
<Module>
<Name>logging</Name>
<Description>Client Logging</Description>
<Class>com.wowza.wms.module.ModuleClientLogging</Class>
</Module>
<Module>
<Name>flvplayback</Name>
<Description>FLVPlayback</Description>
<Class>com.wowza.wms.module.ModuleFLVPlayback</Class>
</Module>
<Module>
<Name>Wrench module</Name>
<Description>A module for user authentication and much more</Description>
<Class>com.streamtoolbox.Wrench</Class>
</Module>
</Modules>
<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
<Properties>
<!-- Example Application.xml part from the Properties element -->
<Property>
<Name>wrench.db.driver</Name>
<Value></Value> <!-- Setting to nothing to go into no-database mode -->
</Property>
<Property>
<Name>wrench.token.resolver.url</Name>
<Value>http://example.com/auth-token.cfm</Value>
<!--Value>http://streamtoolbox.com/streaming/auth-nok.php</Value-->
</Property>
<Property>
<Name>wrench.connect.authorization.url</Name>
<Value>http://example.com/auth-ok.cfm</Value>
<!--Value>http://streamtoolbox.com/streaming/auth-nok.php</Value-->
</Property>
</Properties>
答案 1 :(得分:0)
问题是我在Carrierwave中创建了一个方法,将上传图像的文件名更改为user.id,这就是为什么上面你会看到[[“photo”,“8.jpg”]。因此新图像被赋予相同的名称。删除此方法后,问题就停止了。
我仍然想知道是否有办法迫使Rails意识到图像已经改变,即使名称相同,并重新加载它?