我有一个附件模型,您可以在单击链接时添加到资产。在此页面上传附件,我将其用于反向链接:
<%= link_to 'Back', asset_path(@asset.id)%>
然而,当它失败时,它会产生很大的错误并且不会显示。我该如何解决这个问题?
更新
对于那些想知道错误的人是这样的:
调用id为nil,错误地为4 - 如果你真的想要id为nil,请使用object_id
提取的来源(第5行):
3: <%= render 'form' %>
4:
5: <%= link_to 'Back', asset_path(@asset.id)%>
注:的 这在通过验证时工作正常,但在没有通过验证时工作正常,通过以下方式在附件控制器的新方法中构建资产:
@asset = Asset.find(params[:asset_id])
@attachment = @asset.attachments.build
答案 0 :(得分:2)
您的链接应位于以下内容中:
<% unless @asset.new_record? %>
<%= link_to 'Back', asset_path(@asset.id)%>
<% end %>
如果@asset对象尚未保存,则asset_path将失败,因为id为nil。
答案 1 :(得分:1)
也许在您的create
操作中,您没有设置@asset
变量?
如果您致电render :new
,并不意味着new
行动中的所有变量都会被神奇地初始化。