Rails 4:从其他控制器创建记录

时间:2016-05-19 19:38:12

标签: ruby-on-rails ruby-on-rails-4 controller models

我有2个模型,UserQueue。我希望能够在@user.id内将users_controller添加到队列表中。

我的模特是:

class Queue < ActiveRecord::Base
    has_many :users
end

class User < ActiveRecord::Base
    belongs_to :queue
end

我在users_controller的功能是:

def addToQueue
    queue_entry = Queue.new(user_id: @user.id) # where things go wrong
    if queue_entry.save
        redirect_to user_path(@user), notice: "#{@user.name} has been successfully added to the queue."
    else
        redirect_to user_path(@user), :flash => {:error => "Error: #{@user.name} was NOT added to the queue."}
    end
end

我在show.html.erb的{​​{1}}视图中有此功能的链接:user

由于某些原因,我不断获得:<%= link_to 'Add to queue', addToQueue_path(@user) %>指向wrong number of arguments (1 for 0)

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您设置关系的方式意味着users表具有外键queue_id,而不是相反。

由于User belongs_toQueue实例的实例必须queue_id必须在User实例上指定为C:\>tree