2015-02-12 24 views
3

我正在尝试在Rails 4项目中实现Cells gem。使用单元格新建和创建操作

我对于为模型渲染表单Cell有点困惑。我环顾了谷歌,但似乎无法找到涵盖此的教程。大多数教程只包含:show cell。

  1. 实施单元格表单有可能/很好的做法吗?
  2. 你如何去创建和渲染这个Cell? (我认为这将类似于:显示单元格)
  3. 单元格冻结到表单提交流程中的位置? params是否仍然发布给控制器或Cell?我在哪里做我的表单提交验证?

任何人都可以帮我澄清或指向我的教程涵盖这个问题?

回答

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 %> 
    
相关问题