0

我有部分被几个控制器重用。

现在我有这个部分设置来接受 2 个我不想做的对象。

-if @article
  .main-inner
    .article-header
      .article-title
        =@article.title
      -if !@article.byline.blank?
        %span#byline
          =@article.byline
      %span#timestamp
        =@article.publish_date.strftime("%a, %b %d, %Y %I:%M %Z")
    .article-content
      =truncate(@article.content, :length => 600).html_safe
-else
  .main-inner
    .article-header
      .article-title
        =article.title
      -if !article.byline.blank?
        %span#byline
          =article.byline
      %span#timestamp
        =article.publish_date.strftime("%a, %b %d, %Y %I:%M %Z")
    .article-content
      =truncate(article.content, :length => 600).html_safe

当@article

def show
  @article = Article.find_by_permalink(params[:permalink])
end

当通过当地人

$("#article").html("<%= escape_javascript render(:partial => 'article/view', :locals => { :article => @newarticle }) %>")

1)如果@article,我如何巩固我的部分不使用。
2)在我的js中。渲染部分的正确语法是什么,所以我不必说:partial => 'article/view' 并使用:locals?

4

1 回答 1

1

如果它是局部的,那么您应该使用 article(local) 而不是 @article(不是即时变量),并且在渲染局部时应该始终将其传递给局部变量。

render(:partial => 'article/view', :locals => { :article => @article })

或者

render(:partial => 'article/view', :locals => { :article => @newarticle })
于 2011-05-11T07:09:14.877 回答