Ruby on rails 当前页面?在局部视图中不断出错

Ruby on rails 当前页面?在局部视图中不断出错,ruby-on-rails,ruby,routes,Ruby On Rails,Ruby,Routes,我正在使用一个_formpartial,其中包含我的模型产品的创建和编辑模板 我有下面的代码来检查它是否是编辑视图 但是,当我进入“创建”视图时,站点会出现以下错误 没有路由匹配{:action=>“edit”,:controller=>“products”,:id=>nil} 缺少必需的密钥:[:id] 我找不到问题所在。edit\u product\u path()需要您想要编辑的产品的id,但在您的情况下,@product不知何故是nil,因此,您得到了错误。由于将来可能再次出现nil,

我正在使用一个_formpartial,其中包含我的模型产品的创建和编辑模板

我有下面的代码来检查它是否是编辑视图

但是,当我进入“创建”视图时,站点会出现以下错误

没有路由匹配{:action=>“edit”,:controller=>“products”,:id=>nil} 缺少必需的密钥:[:id]

我找不到问题所在。

edit\u product\u path()
需要您想要编辑的产品的
id
,但在您的情况下,
@product
不知何故是
nil
,因此,您得到了错误。由于将来可能再次出现
nil
,因此您必须进行检查:

<% if @product %>
  <% current_page?(edit_product_path(@product) %>
  <%# Your other code %>
<% end %>


您的变量
@product
nil
,如果您发布了controller@MrYoshiji我知道id丢失了,我如何检查它是否是来自另一个视图的编辑路径?如果它只在某些场景中起作用,那么像这样检查似乎是无关紧要的。答案在您的回答中:“它只在某些场景中起作用”,然后使用逻辑的
if
语句定义这些“场景”(类似于@ArslanAli posted或简单的
if@product.persistend?&¤t_page?([…])
)@Yoshiji先生非常感谢我用了一个组合来回答你和Arshans的问题。当你开始新的事情时总是很困难:)谢谢你的支持!谢谢阿尔斯兰,这个答案帮助了我。