我有点惭愧,因为现在有两个多小时我不知道该怎么做。但我对 Rails 很陌生,所以请耐心等待:)
我有两组用户:海报和实干家然后有一个模型“作业”。作业由海报创建(与它们有belong_to 关系)。然后,实干者可以从未分配的池中选择分配并将它们分配给自己(这就是为什么分配也与实干者有belong_to关系的原因)。
在页面本身我现在有这个代码(在过去的一个小时里改变了 20 次):
<table class="table">
<thead>
<tr>
<th>Title</th>
<th>Assign to me</th>
</tr>
</thhead>
<tbody>
<% @assignments.each do |assignment| %>
<tr>
<td><%= assignment.title %></td>
<td>
<%= link_to(edit_assignment_path(assignment), :doer => current_doer.id, confirm: 'Really take this assignment on?') do%>
<i class="icon-folder-open", alt="assign"></i>
<% end %>
</td>
</tr>
<% end %>
</tbody>
</table>
在 AssignmentController 中使用此代码:
def edit
@assignment = Assignment.find(params[:id])
@doer = Doer.find(params[:doer])
if @patient.assign(@doer)
redirect_to dashboard_index_path, notice: 'Successfully assigned to you'
else
redirect_to dashboard_index_path, alert: 'Error while trying to assign to you'
end
end
这在 Assignment.rb :
def assign(current_doer)
if self.doer_id != nil then
false
else
self.doer_id << current_doer
true
end
end
如您所见,在此示例中我以 Doer 身份登录。而且我一生都无法弄清楚如何正确和干净地做到这一点!
我还尝试了 link_to 代码部分、assign 函数等的变体。目前我收到错误,@doer = Doer.find(params[:doer]) 无法搜索 Nil 的 id。我知道这意味着我并没有真正正确地发送 doer_id 参数,但我处于初学者知识端。
非常感谢你在这里帮助我。
问候, Lordylike