0

おそらくかなり基本的な質問ですが、我慢してください。

ContentBlockモデルで表された多数のモジュラーコンテンツを含むページを作成しています。それぞれContentBlockに少なくとも1つのリンクがあり、それぞれに2つの異なる属性があります。私の最初のアプローチは、これらのリンクを配列としてモデルに追加することでした。データベースに個別に格納する必要はなく、独自のロジックもありません。ただし、作成/編集用のフォームの作成を検討しているContentBlockので、リンク用に個別のネストされたモデルがあれば、作成する方がはるかに簡単なようです。

モデルを使用するように変換することを強く検討していますが、リンクがDBにあるのと同じくらい些細なものを格納するのは、一種の「間違った」と感じています。Railsでの作業にまだ慣れているので、この感覚は見当違いですか?何でもすべてのモデルを作成する必要がありますか?または、実行する前に、ある種の最小基準を探す必要がありますか?

4

2 に答える 2

1

ネストされたモデルのフォームを作成する方が間違いなく簡単です。リンクには属性があるので、モデルを作成することをお勧めします。私は、フィールドに簡単に収まらない概念のモデルを作成する側で誤りを犯す傾向があります。クエリのパフォーマンスが心配な場合は、いつでも積極的な読み込みを行うことができます。

于 2013-02-12T02:12:11.897 に答える
0

管理する予定のデータの量、そのデータに対して何をしたいのか、そのデータが何を表しているのかなどによって異なります。

私たちが持っていたプロジェクトの1つは、レストランのグループのレシピを作成できるものを構築することでした。レシピ(説明などの一部のテキスト...)->材料、これらはすべて1行のテキストであり、複数のハンドフルが存在することはないため、配列を使用しました。また、成分にはそれ以上の依存関係はありませんでした。レシピはhtmlにのみレンダリングされ、それらに対して検索することはありません(少なくともdbに対しては検索しません)。

別のプロジェクトでは、あなたと非常によく似たページを作成する必要がありましたが、ページの各「コンポーネント」は異なることを行い、動画やその他のアセット、テンプレートなど、アプリ内の他のオブジェクトにリンクされているものもありました。このタイプの作業は、wysiwygまたはJSの方法で行い、ペイロード/構造全体をDBに保存します。どちらも非常に厄介であることがわかりました。

そして、浮かび上がった懸念の1つは、アセット/関連オブジェクトが誤ってまたは意図的に削除されたが、多くのページに存在していた場合に何が起こったかということでした。モデルを使用すると、何かが削除された場合に、リンクされているすべての関連付け内で確実に削除されます(ただし、これはそれ自体に問題を引き起こしますが、何よりも表示されたときにページが意味をなすようになります)。

また、私たちのページは、さまざまな外観と相互作用を持つさまざまなタイプのコンポーネントで非常に大きくなる可能性がありました。これが、適切に管理できる唯一の方法でした。

だから私はあなたの要件を見て、それに応じて計画します、文脈が重要です。そして、あなたがそれを変更しなければならない場合(これは頻繁に起こります)、あなたはそれを変更します。

于 2013-02-12T02:38:28.973 に答える