新しいクライアントを作成するためのエンドポイントを作成しました。
最初に、クライアントを作成し、トランザクションを使用しました (以下のコードを参照)。
通常勤務です。
# Before add set_result
js_method :on_new_contact, <<-JS
function() {
var form = this.items.first().getForm();
if (form.isValid()) {
this.newContact(form.getFieldValues());
this.closeRes = 'create_user';
this.close();
}
}
JS
endpoint :new_contact do |params|
data_hash = params.to_hash
Client.transaction do
new_client = Client.new
data_hash.each do |field, value|
new_client.__send__("#{field}=", value)
end
if new_client.save!
flash :notice => "Client #{new_client.full_name} has been created"
else
flash :error => new_user.errors.full_messages.to_sentence
end # if
end # transaction
{:netzkeFeedback => @flash}
end # endpoint
そして、エンドポイントから新しいクライアント ID を返すためのセット結果を追加した後。
新しいクライアントをデータベースに 3 回保存します。
# After add set_result
js_method :on_new_contact, <<-JS
function() {
var form = this.items.first().getForm();
if (form.isValid()) {
this.newContact(form.getFieldValues(), function(value){
alert(form);
alert(value);
}, this);
this.closeRes = 'create_user';
this.close();
}
}
JS
endpoint :new_contact do |params|
data_hash = params.to_hash
Client.transaction do
new_client = Client.new
data_hash.each do |field, value|
new_client.__send__("#{field}=", value)
end
if new_client.save!
flash :notice => "Client #{new_client.full_name} has been created"
else
flash :error => new_user.errors.full_messages.to_sentence
end # if
end # transaction
{:netzkeFeedback => @flash, :set_result => new_client.id}
end # endpoint
私はすでに何が問題なのかを見つけようとしています。
そして、トランザクションで set_result を使用すると発生することがわかりました。
transaction
ORset_result
コードを削除すると、正常に動作します。
では、どうすればそれを機能させることができますか?