2011-05-11 60 views
0

我有一部分被一对控制器重复使用。Rails:使用本地人时保持局部干燥

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

-if @article 
    .main-inner 
    .article-header 
     .article-title 
     [email protected] 
     -if [email protected]? 
     %span#byline 
      [email protected] 
     %span#timestamp 
     [email protected]_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?

回答

1

如果它是一个部分,那么你应该使用文章(本地)而不是@article(不是即时变量),并且应该总是在渲染局部时在本地传递它。

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

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

好了,现在我明白和意识到我不得不这样做。谢谢! – user647345 2011-05-11 07:18:58