【问题标题】:Rails: Keeping a partial DRY when using localsRails:使用本地人时保持部分干燥
【发布时间】:2011-05-11 07:00:41
【问题描述】:

我有部分控制器正在重复使用。

现在我已经将这个部分设置为接受 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?

【问题讨论】:

    标签: ruby-on-rails partials locals


    【解决方案1】:

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

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

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

    【讨论】:

    • 好的,现在我明白并意识到我必须做什么。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 2014-06-26
    • 2011-08-18
    • 2020-08-27
    • 2017-01-28
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多