外部 API から情報を読み込んでページに表示する Sinatra アプリがあります。これは Sinatra で行われ、情報を取得して一時的なモデル インスタンス (保存されません) に配置されるため、ビュー内のすべてのプロパティに簡単にアクセスできます。
ユーザーがリンクをクリックすると、モデルインスタンスをデータベースに保存したいのですが、最後のリクエストはすでに終了しており、インスタンスがまだ生きていないため、AJAX などを介してのみ実行できると思います。対応する HTML 要素のすべての情報を抽出し、別のルートに AJAX-Post を作成する必要があると考えました。
私の問題は、モデルを作成 (および保存) できるようにしたいということです@model = Model.create(params[:model])
。フォームを使用して何をすべきかは明らかですが、すべてのデータがテーブル内に表示され、テーブルの各行がモデルの 1 つのインスタンスであるため、それはオプションではありません。
上記のように使用できるように、クリックされたリンクがあるテーブル行からデータをシリアル化するにはどうすればよいですか?
アップデート
- オブジェクト クラスの複数のインスタンスを、それぞれ 1 つのテーブル行で使用しています。
- 私は DataMapper を使用していますが、一時オブジェクトのみが保存されていません!
- セットアップ全体を散らかしたくない!