文章与@article 之间有什么不同?
What is different between article vs @article?
文章模型有很多评论,评论属于文章。
以下为文章部分内容
<%= link_to article.title, article %>
<% if article.owned_by? current_user %>
<span class='actions'>
<%= link_to "Edit", edit_article_path(article) %>
<%= link_to "Delete", article, confirm: "Are you sure?", method: :delete %>
</span>
<% end %>
以下为评论部分内容
<%= comment.name %> <<%= comment.email %>> commented:
<% if @article.owned_by? current_user %>
<span class="actions">
<%= link_to 'Delete', [@article, comment],
:confirm => 'Are you sure?', :method => :delete %>
</span>
<% end %>
你能说说为什么文章部分用article
而评论部分用@article
吗?为什么不在文章部分@article
?
如果我的问题对你来说太简单了,我很抱歉,但我真的很困惑。
检查你的代码,你可能在某个地方有这样的东西:
<%= render partial: '_some_partial.html.erb', locals: { article: @article }
正如 Yoshiji 先生在评论中指出的那样,@article
是一个实例变量,在控制器中设置,而 article
是该部分的局部变量。
在局部变量中仅使用局部变量被认为是一种很好的做法,因为这使您可以更轻松地重用它们,包括在视图之间。
更新
如果你的 Comment 模型中碰巧有这样的东西:
class Comment < ActiveRecord::Base
belongs_to :article
end
然后在部分注释中,您可以通过使用 comment.article
代替实例变量和局部变量。
文章模型有很多评论,评论属于文章。
以下为文章部分内容
<%= link_to article.title, article %>
<% if article.owned_by? current_user %>
<span class='actions'>
<%= link_to "Edit", edit_article_path(article) %>
<%= link_to "Delete", article, confirm: "Are you sure?", method: :delete %>
</span>
<% end %>
以下为评论部分内容
<%= comment.name %> <<%= comment.email %>> commented:
<% if @article.owned_by? current_user %>
<span class="actions">
<%= link_to 'Delete', [@article, comment],
:confirm => 'Are you sure?', :method => :delete %>
</span>
<% end %>
你能说说为什么文章部分用article
而评论部分用@article
吗?为什么不在文章部分@article
?
如果我的问题对你来说太简单了,我很抱歉,但我真的很困惑。
检查你的代码,你可能在某个地方有这样的东西:
<%= render partial: '_some_partial.html.erb', locals: { article: @article }
正如 Yoshiji 先生在评论中指出的那样,@article
是一个实例变量,在控制器中设置,而 article
是该部分的局部变量。
在局部变量中仅使用局部变量被认为是一种很好的做法,因为这使您可以更轻松地重用它们,包括在视图之间。
更新
如果你的 Comment 模型中碰巧有这样的东西:
class Comment < ActiveRecord::Base
belongs_to :article
end
然后在部分注释中,您可以通过使用 comment.article
代替实例变量和局部变量。