コミュニティ ブログ エンジンがインストールされた、refinerycms アプリがあります。blog_post に画像フィールドを追加して、投稿のメイン画像を選択し、ビューに表示できるようにしたいと思います。
画像フィールドを追加しようとしましたが、喜びはありません。次に、画像フィールドを持ち、image_id を使用してメインの画像テーブルにリンクしている他のカスタム エンジンの 1 つを調べたので、代わりに image_id フィールドを追加し、blog_post モデルを編集して同じ「belongs_to」行を持つようにしました。ブログの編集ページが読み込まれ、画像ピッカーが部分的に機能しますが、保存を押すと、テーブルに何も送信されていないように見えます。
気になる点の 1 つは、画像フィールドを使用してカスタム エンジンを作成したときに、それをフィールド タイプの画像として指定したことです。これにより、バックエンドに image_id フィールドが作成され、すべてが設定されたように見えるので、引き続きイメージ クラスを参照できます。ブログに画像フィールドを追加しても、それは行われませんでした。画像というフィールド タイプを作成しただけです。カスタム エンジンのテーブルを調べると、image と呼ばれるフィールド タイプがないため、どこかに、再作成できない変換マジックがあります。
現在、次のコードがあります。
この移行を作成しました:
class AddPictureToBlog < ActiveRecord::Migration
def self.up
add_column :blog_posts, :main_image_id, :integer
end
def self.down
remove_column :blog_posts, :main_image_id
end
end
これを blog_post モデルに追加しました:
belongs_to :main_image_id, :class_name => 'Image'
これをビューに表示します:
<%= f.label :main_image_id -%>
<%= render :partial => "/shared/admin/image_picker", :locals => {
:f => f,
:field => :main_image_id,
:image => @blog_post.main_image_id,
:toggle_image_display => false
} %>
カスタム エンジンは _id フィールドを参照することさえしないので、ここでどのリンクが欠落しているかわかりません。どんな助けでも大歓迎です。それは製油所固有の問題ではないかもしれません-私はレールが初めてなので、ここにいくつかの基本が欠けている可能性があります。
ありがとう!