【问题标题】:undefined local variable or method `path'未定义的局部变量或方法“路径”
【发布时间】:2014-01-22 20:25:07
【问题描述】:
<h2>Hello World</h2>

<% @posts.each do |post| %>
    <h2><%= link_to post.title, @post %></h2>
    <p><%= post.content %></p>
    <hr />

<% end %>

当我这样做时,它会让我查看没有错误的页面,并且在我的所有帖子标题上都有一个超链接,但现在它不会将我重定向到只有我想要的帖子的页面......仍在试图解决这个问题我猜是我的错误。

【问题讨论】:

  • 您使用的变量path 显然没有定义...
  • 你的意思是post.path
  • 我定义了一个变量。调用 @post = Post.find(params[:id]) 所以我将 var 放入路径中,我认为它正在工作
  • @RoySchoep,您不必将路径定义为变量,前提是 post 被定义为 rails 中的资源。 guides.rubyonrails.org/routing.html

标签: ruby ruby-on-rails-4 blogs


【解决方案1】:

除非您以某种方式修改了帖子路径:

<%= link_to 'post.title', post_path(post) %>

【讨论】:

    【解决方案2】:

    应该是

    <% @posts.each do |post| %>
        <h2><%= link_to post.title, post %></h2>
        <p><%= post.content %></p>
        <hr />
    
    <% end %>
    

    请注意,我更改了@post -&gt; post,因为在循环中您需要获取每个post 对象的路径。

    那么你不需要像你说的那样做@post = Post.find(params[:id])

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-13
      • 2017-01-26
      • 2018-04-19
      • 2015-01-01
      • 2013-12-17
      相关资源
      最近更新 更多