验证失败的链接问题

时间:2011-07-27 21:31:36

标签: ruby-on-rails ruby-on-rails-3

我有一个附件模型,您可以在单击链接时添加到资产。在此页面上传附件,我将其用于反向链接:

<%= 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

2 个答案:

答案 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行动中的所有变量都会被神奇地初始化。

我认为这可以提供帮助:The Difference Between render and redirect_to