Rails 4: 从其他控制器创建记录
Rails 4: Create record from other controller
我有 2 个模型,User
和 Queue
。我希望能够从 users_controller
.
中将 @user.id
添加到队列 table
我的模型是:
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
视图中有一个 link 用于 user
的此函数: <%= link_to 'Add to queue', addToQueue_path(@user) %>
出于某种原因,我不断收到:wrong number of arguments (1 for 0)
指向行 queue_entry = Queue.new(user_id: @user.id)
我应该怎么做?
您设置关系的方式意味着用户 table 有外键 queue_id
而不是相反。
由于 User
belongs_to
的实例是 Queue
实例,因此必须将 queue_id
分配为 User
实例的属性。
我有 2 个模型,User
和 Queue
。我希望能够从 users_controller
.
@user.id
添加到队列 table
我的模型是:
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
视图中有一个 link 用于 user
的此函数: <%= link_to 'Add to queue', addToQueue_path(@user) %>
出于某种原因,我不断收到:wrong number of arguments (1 for 0)
指向行 queue_entry = Queue.new(user_id: @user.id)
我应该怎么做?
您设置关系的方式意味着用户 table 有外键 queue_id
而不是相反。
由于 User
belongs_to
的实例是 Queue
实例,因此必须将 queue_id
分配为 User
实例的属性。