0

私は物を保管しているモデルを持っています。ブール属性 (action_type) の値が false の場合、PostgreSQL は何らかの理由で INSERT クエリをロールバックします。

create_table :process_flows do |t|
      t.integer :campaign_id
      t.integer :position
      t.string :description
      t.string :typestr
      t.float :action_number
      t.boolean :action_type
      t.string :action_on_donation
      t.integer :created_by
      t.integer :updated_by
      t.timestamps
end

私のビューファイルは次のようになります:

<%= form_for [@org, @campaign, @process_flow] do |f| %>
        <%= render "shared/errors", :target => @process_flow %>
        <div class="field">
            <%= f.label :description %><br />
            <%= f.text_field :description %>
        </div>
        <div class="field">
            <%= f.label :typestr, 'Type of organization' %><br /><br />
            <%= f.select :typestr, options_for_select([["Point of collection", "PC", :selected => true], ["Your Organization", "O"], ["Bank / Payment Gateway", "B"], ["Intermediary", "I"], ["Recipient Charity Project", "R"]]) %><br /><br />
        </div>
        <%= f.select :action_on_donation, options_for_select([["100% (Unchanged)", "U", :selected => true], ["Increase", "A"], ["Decrease", "S"]]) %>
        the donation 
        by
        <%= f.text_field :action_number, :style=>"width: 30px;", :value => '0' %>
        <%= f.select :action_type, options_for_select([["Percent", '1', :selected => true], ["Flat Amount", '0']]) %>
        <div>
            <%= f.submit 'Add', :class=>'button' %>
        </div>
    <% end %>
4

1 に答える 1

0

これは、多くのプラットフォームで発生する可能性があります。

これの最も一般的な原因は、COMMIT の欠落です。接続が閉じられると、PostgreSQL は開いているトランザクションをロールバックします。

もう 1 つの可能性は、コード ブランチが実行されることを期待しているにもかかわらず、実行されていないことです。

このような場合、コードをウォークスルーしてデバッグし (ここには十分なコードがありません)、挿入が送信されているかどうか、コミットが発行されているかどうかを判断することが重要です。

于 2013-03-22T01:51:56.180 に答える