0

アクティブ レコードを使用してレガシー データベースに接続しているモデルがあります。列名がすべて大文字であるためです。私は彼らのためにalias_attributesを作成しました

alias_attribute(:marketing_code, :MARKETING_CODE)

残念ながら、rest_in_place gem を使用している場合、返される JSON には元の列名のみが含まれます。これにより、rest_in_place が書き込まれた値を返すことはなく、単に保存中と表示されますが、更新は行われます。

これは私のビューコードがどのように見えるかです

   <span id="fund_<%= fund.id %>_MARKETING_CODE" class="rest-in-place" data-url="/funds/<%= fund.id %>" data-object="fund" data-attribute="MARKETING_CODE">
            <%= fund.MARKETING_CODE.blank? ? 'Fill In' : fund.MARKETING_CODE %>
          </span>

属性エイリアスで動作させる方法はありますか? ルビー標準に従うことができるように、それらを使用したいと思います。以下は、rest_in_place の README です。

http://rubydoc.info/gems/rest_in_place/2.1.1/frames

4

1 に答える 1

0

私は自分の問題を理解しました。うまくいけば、エイリアス_属性をActiveRecordで使用すると、応答するJSONには影響しません。

Chrome 開発者ツール内の [ネットワーク] タブを確認して、これに気付きました。私の特定のケースでは、alias_attribute を使用して、レガシ データベースの列を upper_case から lower_case に変更し、Rails コード スタイル ガイドに適合させました。残念ながら、応答する JSON を確認すると、属性が大文字で返されていることがわかりました。

そのため、レガシー データベースで rest_in_place を使用している場合は、実際の列名にのみ応答します。誰かが回避策を知っていれば、私は感謝します。

于 2013-06-06T18:45:14.627 に答える