0
我假设的很基本的Rails问题,但我无法弄清Rails的简单性。Rails:为相关模型创建动作
我的简单目标是让用户提交一份表格,说明捐赠金额,并将捐赠链接到用户。我在与在donations_controller.rb
的create
行动麻烦我有一个User.rb
模型和Donation.rb
模型。 User.rb has_one :donation
和Donation.rb belongs_to :user
。我也在使用Devise,所以我有current_user
方法。
我的捐款表看起来像这样
class CreateDonations < ActiveRecord::Migration
def change
create_table :donations do |t|
t.integer :amount
t.integer :user_id
t.timestamps
end
add_index :donations, [:user_id, :created_at]
end
end
的_form.html.erb
为donations_controller.rb
看起来像这样
<%= form_for @donation do |f| %>
<div class="field">
<%= f.number_field :amount %>
</div>
<div class="actions">
<%= f.submit "Submit" %>
</div>
<% end %>
在donations_controller.rb的create
动作看起来像这样
def create
@donation = current_user.donation.build(params[:donation])
if @donation.save
flash[:success] = "Donation"
redirect_to root_path
else
render 'home/index'
end
end
我得到这个错误m当我提交表单时发送消息。
NoMethodError in DonationsController#create
undefined method `build' for nil:NilClass