3

Rails 4 プロジェクトでCells gemを実装しようとしています。

モデルのフォーム Cell のレンダリングについて少し混乱しています。Google を見回しましたが、これをカバーするチュートリアルが見つからないようです。ほとんどのチュートリアルは、:show セルのみをカバーしています。

  1. セルフォームを実装することは可能ですか/良い習慣ですか?
  2. このセルを作成してレンダリングするにはどうすればよいでしょうか? (これは :show Cell に似ていると思います)
  3. フォーム送信プロセスの流れのどこでセルが開始されますか? パラメータはまだコントローラまたはセルにポストされていますか? フォーム送信の検証はどこで行うのですか?

この問題をカバーするチュートリアルを明確にするか、教えてください。

4

1 に答える 1

2
  1. 「ベストプラクティス」はほとんど問題ではありません。しかし、細胞は素晴らしいパターンを提供すると思います。素晴らしいことは、テスト容易性です。予想される HTML 要素が存在するかどうか、およびどのようなコンテンツが含まれている必要があるかを確認する、非常に優れたテストを作成できます。これにより、1 つの大きなページ テストではなく、小さなセル テストを使用してページ全体をテストすることが非常に簡単になります (決して行うことはありません)。では、フォームもテストしてみませんか?

  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 %>
    
于 2015-02-19T13:46:00.740 に答える