Transactions#new中的NoMethodError

时间:2012-03-15 01:24:46

标签: ruby-on-rails ruby

我正在尝试在我的Rails数据库银行应用程序上添加一个新事务,但是当我点击new时,我收到此错误:

  

交易#new中的NoMethodError   显示第10行引发的app / views / transactions / _transaction_form.html.erb:   #

的未定义方法`dateD'

第10行,即:

9:     <%= f.label :dateD %><br />
10:     <%= f.date_select :dateD %>

即使我删除了这个,但似乎有错误,但是有不同的错误。这是我的_transaction_form.html.erb,我在我的编辑/新页面上使用它,编辑似乎工作正常,但是一旦我转到新的,我得到上面发布的错误。这是新代码:

_transaction_form.html.erb

<% form_for(@bank_account,@transaction) do |f| %>
<%= f.error_messages %>

<p>
    <%= f.label :bank_account_id %><br />
    <%= f.text_field :bank_account_id %>
</p>
<p>
    <%= f.label :dateD %><br />
    <%= f.date_select :dateD %>
</p>
<p>
    <%= f.label :trans_type %><br />
    <%= f.text_field :trans_type %>
</p>
<p>
    <%= f.label :amount %><br />
    <%= f.text_field :amount %>
</p>
<p>
    <%= f.label :new_balance %><br />
    <%= f.text_field :new_balance %>
</p>
<p>
    <%= f.label :transaction_success %><br />
    <%= f.check_box :transaction_success %>
</p>
<p>
    <%= f.submit 'Submit' %>
</p>
<% end %>

TransactionsController#新

def new
    @transaction = @bank_account.transactions.build

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @transaction }
    end
end

1 个答案:

答案 0 :(得分:0)

两件事。您的form_for应该使用<%=而不是<%[]部分应该@bank, @transaction

<%= form_for([@bank_account,@transaction]) do |f| %>