2 時間以上前からやり方がわからないので、少し恥ずかしいです。しかし、私はRailsにかなり慣れていないので、我慢してください:)
投稿者と実行者の 2 つのユーザー グループがあり、「割り当て」というモデルがあります。課題は投稿者によって作成されます (投稿者との所属先関係があります)。次に、実行者は、割り当てられていないもののプールから割り当てを選択し、それらを自分自身に割り当てることができます (そのため、割り当ては実行者との属している関係もあります)。
ページ自体には、現時点で次のコードがあります (過去 1 時間で 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 パラメーターを正しく送信していないことを意味することはわかっていますが、初心者の知識の終わりです。
ここで私を助けてくれてありがとう。
ごきげんよう