【发布时间】:2017-12-10 13:12:37
【问题描述】:
我的问题和这个问题类似:Ruby on Rails - Data not saved. Index showing blank values
然而,强大的参数与答案相匹配,似乎没有数据通过。
如果我使用 params.require(:banktransaction).permit(...) 我得到一个错误:param is missing or value is empty
如果我删除了需要的部分,则会添加一行但没有值。
我浏览了视图和控制器并检查了我的拼写,我一生都看不到我错过了什么,谁能指出我正确的方向?
控制器:
class BankAccountsController < ApplicationController
def delete
end
def destroy
end
def edit
end
def update
end
def index
@bankaccount = BankAccount.all
end
def show
end
def new
@banktransaction = BankAccount.new(:transactionDate => Time.now, :description => params[:description], :credit => params[:credit], :debit => params[:debit])
end
def create
@banktransaction = BankAccount.new(bank_account_params)
if @banktransaction.save
flash[:notice] = "transaction added successfully."
redirect_to(bank_accounts_path)
else
render('new')
end
end
private
def bank_account_params
params.require(:banktransaction).permit(:transactionDate,:description,:credit,:debit)
end
end
查看:
<h1>BankAccounts#new</h1>
<p>Find me in app/views/bank_accounts/new.html.erb</p>
<div class="new transaction">
<h2>Create Transaction</h2>
<%= form_for(@banktransaction, :html => {:multipart =>true }) do |f| %>
<%= render(:partial =>'form', :locals=> {:f => f}) %>
<div class="form-buttons">
<%= f.submit("Create Transaction") %>
</div>
<% end %>
</div>
表格部分:
<%= f.label(:transactionDate) %>: <%= f.date_field(:transactionDate) %><br>
<%= f.label(:description) %>: <%= f.text_field(:description) %><br>
<%= f.label(:credit) %>: <%= f.number_field(:credit) %><br>
<%= f.label(:debit) %>: <%= f.number_field(:debit) %><br>
路线:
Rails.application.routes.draw do
resources :bank_accounts do
member do
get :delete
end
end
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
【问题讨论】:
-
参数丢失或值为空:banktransaction - 并指向私有方法banktransaction
-
只是为了添加当页面“bank_accounts/new”加载时出现上述错误
标签: mysql ruby-on-rails