我认为这是:
<% @users.each do |user| %>
<% if user.teacher == current_user.teacher || current_user.role == "admin" %>
<tr>
<td><%= user.username %></td>
<td><%= user.email %></td>
<td><%= user.teacher %></td>
<td><%= user.role %></td>
<td><%= user.admin %></td>
<td><%= link_to 'Problems', student_problems_path(user) %></td>
<td><%= link_to 'Edit', edit_user_path(user) %></td>
<td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
<% end %>
因此,我将user
作为参数传递给student_problems_path
。在我的UsersController
我有:
def student_problems
@problems = Problem.all
@user = user.email
end
但是,Rails告诉我以下内容:
undefined local variable or method `user' for #<UsersController:0x3d79208
如何从视图中访问传递给user
的{{1}}变量?谢谢!
修改
以下是我的路线:
UsersController
答案 0 :(得分:0)
执行以下操作:
# pass the following to your helper:
student_problems_path(user_email: user.email)
# now the URL will be /student_problems?user_email=user@gmail.com
# and in the controller do:
def student_problems
@user = params[:user_email]
@problems = Problem.all
end
答案 1 :(得分:0)
不知道问题的详细信息,但如果您想在student_problems操作中获取用户的ID,那么您可以使用以下代码:
@user_id = params[:id]
如果您想要更多解决方案,请使用代码指定问题详细信息。感谢