0

如果查看“post_controller/show”,如何设置条件。

如果用户正在查看帖子,我希望在标题导航上显示一个“编辑”按钮,而无需设置不同的布局并让它仅依赖于现有_header.html.erb的导航。

# Header navigation partial _header.html.erb
<%= link_to 'Edit post', edit_post_path(@post) %>

我知道我可以采用类似的参数和设置子句:

<% if params[:id] %>
  <%= link_to 'Edit post', edit_post_path(@post) %>
<% end %>

undefined method 'edit_post'上面的问题是,如果您访问与 Post 模型无关的不同路由,它将导致异常。

如果我可以摆脱许多布局和局部,那会很棒,但如果建议我应该在这种情况下使用布局和局部,那么我会的。

非常感谢大家。

4

1 回答 1

2
# Header navigation partial _header.html.erb
<%= yield(:edit_link) %>

#In your post_controller/show view :
<% content_for :edit_link, link_to('Edit post', edit_post_path(@post)) %>

就是这样。您可以更改:edit_link任何地方的内容,适用于不同的模型等......

于 2012-11-02T13:56:46.917 回答