Rails:为关联的模型创建操作

时间:2012-03-25 22:12:26

标签: ruby-on-rails

我认为非常基本的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

1 个答案:

答案 0 :(得分:0)

构建has_one关联的方法是current_user.build_donation(params[:donation])