rails4 5.12 Using partials to clean up duplication in views

我们的edit页面和new页面非常相似,事实上,他们共同共享着相同的代码用来显示form。 让我们用一个局部视图来剔除重复的代码。按照惯例,局部文件的前缀是一下划线。


ps. 想了解更多的局部文件信息,可以参考 Layouts and Rendering in Rails 


创建一个新的文件 app/views/articles/_form.html.erb,编辑如下的内容:


<%= form_for @article do |f| %>

  <% if @article.errors.any? %>

  <div id="error_explanation">

    <h2><%= pluralize(@article.errors.count, "error") %> prohibited

      this article from being saved:</h2>

    <ul>

    <% @article.errors.full_messages.each do |msg| %>

      <li><%= msg %></li>

    <% end %>

    </ul>

  </div>

  <% end %>

  <p>

    <%= f.label :title %><br>

    <%= f.text_field :title %>

  </p>

 

  <p>

    <%= f.label :text %><br>

    <%= f.text_area :text %>

  </p>

 

  <p>

    <%= f.submit %>

  </p>

<% end %>

对于 form_for 所声明的都是和原来的一模一样的。我们使用这个更短的,更简单的 form_for 声明 去替代其他的form,这么做的原因是@article是一个对于完整RESTful路由集的资源映射,Rails能够推断出来哪个URI或者哪个方法能够被使用。更多的关于form_for用法,可以参考 Resource-oriented style.

现在,让我们来修改视图 app/views/articles/new.html.erb,用到这个新的局部视图,重新编辑它:

<h1>New article</h1>

 

<%= render 'form' %>

 

<%= link_to 'Back', articles_path %>

同样的处理这个视图:app/views/articles/edit.html.erb

<h1>Edit article</h1>

 

<%= render 'form' %>

 

<%= link_to 'Back', articles_path %>


原文 http://guides.rubyonrails.org/getting_started.html#using-partials-to-clean-up-duplication-in-views

—end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值