使用单元格的新建和创建操作

时间:2015-02-12 09:15:50

标签: ruby-on-rails ruby ruby-on-rails-4 rails-cells

我正在尝试在Rails 4项目中实现Cells gem。

我对为模型渲染表格Cell感到有些困惑。我环顾了谷歌,但似乎无法找到一个涵盖这个的教程。大多数教程仅涵盖:show cell。

  1. 实施细胞形式是否可行/良好实践?
  2. 你如何创建和渲染这个Cell? (我假设这将类似于:show Cell)
  3. 单元格在表单提交流程中的位置如何? params是否仍然发布到控制器或Cell?我在哪里进行表单提交验证?
  4. 请问有人可以帮我澄清或指出我这个问题的教程吗?

1 个答案:

答案 0 :(得分:2)

  1. '最佳实践'不是一回事。但我认为细胞提供了一个很好的模式。最棒的是可测试性。您可以编写非常好的测试,以检查是否存在预期的HTML元素以及它们应具有的内容。这使得通过小单元测试而不是一个大页面测试(你永远不会做)来测试整个页面非常容易。那么为什么不测试表格呢?

  2. 是的,它非常相似,请在最后看到我的例子。 (代码是一个演示,它基于我对细胞的简短实验,我相信细胞专家可以改进它。)

  3. 单元格的形式可以简单地发布到控制器,因为任何其他形式都可以从部分内部发布。单元格只是一个视图层。单元格中的表单指向url,url将路由到控制器。

    # controllers/products_controller.rb
      ...
      def new
        @product = Product.new
      end
    
      def create
        @product = Product.new(product_params)
      end
      ...
    
    # views/products/new.html.erb
    
    <div class='new_product_form'>
      <%= render_cell :products, :new, product: @product %>
    </div>
    
    # cells/products_cell.rb
    
    class SubscriptionCell < Cell::Rails
      def new(params)
        @product = params[:product]
        render
      end
    end
    
    # cells/products/new.html.erb
    
    <%= simple_form_for @product do |f| %>
      <%= f.input :name %>
      <%# etc... %>
    <% end %>