【发布时间】:2015-05-08 06:48:28
【问题描述】:
我在公司和员工之间有一个 has_many 和 belongs_to 关联。我希望能够通过我的工人索引页面中的链接将工人添加到公司。我希望保存属于已登录公司的员工记录,并使用添加到其员工的新员工更新公司/员工索引页面。
我一直无法做到这一点。这是正在发生的事情:
我的路线是这样的:
namespace :company do
resources :workers, :only => [:index, :create]
end
resources :workers
我有一个 before_action 方法,它与我的控制器中的公司访问令牌进行 cookie 会话:
应用控制器:
@company = Company.find_by_access_token("vZAni6K6")
cookies[:access_token] = @company.access_token
和公司::WorkersController
render :file => "public/401.html", :layout => nil, :status => :unauthorized and return if cookies[:access_token] != @company.access_token
在我的 workers/index.html.haml 路径中,我有:
= "There are #{@workers.count} workers!"
They are:
- @workers.each do |worker|
= worker.name
= link_to "Hire a worker", company_workers_path(:worker_id => worker), :method => :post
%%br
%p= @company.name
我希望能够单击“雇用工人链接”,然后被重定向到 company/workers.html.haml 路径,然后将列出他们的工人更新,最近添加的工人刚刚通过链接。
当我当前点击链接(比如数据库中的工人 #2)而不是带我到公司/工人路径时,它带我去
company/workers?worker_id=2
而且它并没有将工人保存到与公司的关联中。
我的公司/工人控制器有以下内容:
def create
@worker = @company.worker.build(:worker_id => params[:worker_id])
@worker.save
redirect_to :action => 'index'
end
请记住,我的控制器上有一个 before_action,它会在调用其他控制器方法之前保存 @company 实例变量。
我有一个属于_一家公司的模范工人和一个拥有_许多工人的模范公司,并且我已经在我的迁移中添加了引用键。
有什么问题?为什么奇怪的路线以及为什么我的记录没有保存,我有点新手所以请原谅这个简单的问题。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 activerecord model-view-controller