Rails Link_to with Loop – RESTful路由

我希望你能回答问答应用的问题。 Rails还是很新的。 它应该相当简单,但每当我尝试创建一个链接列表以显示指向循环中的RESTful路由时,我会遇到一个小问题。

这是控制器的代码:

users_controller.rb

def list @user = User.find(params[:id]) @users = User.find(:all, :select => :name) end def quiz @user = User.find(params[:id]) @users = User.find(:all, :select => :name) end 

这是视图的代码:

  

这是路线的代码:

 resources :users do get 'quiz', :on => :member end 

我想要做的是根据用户名生成单个链接,然后链接到该特定用户的测验页面。 我很确定在我的视图中需要为代码更改某些内容。 现在,我得到的只是一个指向当前用户的链接,在这种情况下是用户4.( http://localhost:3000/users/4/quiz

感谢您解决此问题的快速提示。

目前,您为每个链接使用相同的@user实例变量。 相反,您需要在循环中使用变量集。 下面的代码应该按预期工作:

 <% if current_user.admin? %> 
    <%- @users.each do |user| %>
  • <%= link_to user.name, quiz_user_path(user) %>
  • <% end %>
<% end %>

为清楚起见,我还将link的变量重命名为user ,因为您通过用户迭代而不是链接。

这是因为在您当前的路线图中, quiz_user_path只需要一个变量。 尝试删除@quiz