我的模型中有一个名为isTransfer:
的字段class AddTxfrColumnsToTransaction < ActiveRecord::Migration
def change
add_column :transactions, :isTransfer, :boolean
add_column :transactions, :transferAccount_id, :integer
end
end
我创建了一个控制器,它应该像action :: new一样,但仅用于转移调用new_transfer:
def new_transfer
account = Account.find(params[:account_id])
@transaction = account.transactions.build
@transaction.description = "Transfer"
@transaction.isTransfer = true
@transaction.amount = 100
respond_to do |format|
format.html # new.html.erb
format.json { render json: @transaction }
end
end
当我在视图表单中看到新传输时,在发布之前,我可以看到isTransfer设置为true。但是当我发帖时,它总是作为假进入数据库。其他字段(描述和数量)不会改变 - 它们按预期进行。
以下是模型:
class Transaction < ActiveRecord::Base
attr_accessible :account_id, :amount, :check, :date, :description, :is_cleared, :note, :category, :isTransfer, :transferAccount_id
validates_presence_of :amount, :date
belongs_to :account, class_name: 'Account'
belongs_to :transferAccount, class_name: 'Account'
end
答案 0 :(得分:0)
我建议你在创建控制器方法而不是新的
中进行预设此外,您可以添加&#34;!&#34;使save方法从控制台返回任何错误:例如
def create
###do your preset methods here
if(@transaction.save!)
end
end
答案 1 :(得分:0)
好的,这可能是一个彻头彻尾的noob错误。我原本认为,如果我在控制器中设置一个值(作为new_transfer动作的一部分),它将在提交后持续到创建动作。我的错误在于,在new_transfer表单中根本没有引用它,它从未作为参数传递回Create操作。通过将以下内容添加到我的new_transfer表单中,isTransfer现在可以在create action中进行更新:
<%= f.hidden_field(:isTransfer) %>