我认为非常基本的Rails问题,但我无法弄清楚Rails的简单性。
我的简单目标是让用户提交一份表明捐赠金额的表格,并将捐款链接到用户。我在create
donations_controller.rb
操作时遇到问题
我有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
的{{1}}看起来像这样
donations_controller.rb
donations_controller.rb中的<%= form_for @donation do |f| %>
<div class="field">
<%= f.number_field :amount %>
</div>
<div class="actions">
<%= f.submit "Submit" %>
</div>
<% end %>
操作如下所示
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
答案 0 :(得分:0)
构建has_one关联的方法是current_user.build_donation(params[:donation])