1

我使用 Rails 3.2 创建了一个简单的目录,并设计了新用户需要批准才能使用该站点的位置。我按照“如何:要求管理员在登录前激活帐户”中的说明进行操作,管理员用户现在可以查看已批准用户和未批准用户的不同索引页面列表。到目前为止,一切都很好。

我的问题是用户审批流程。目前我在 Rails 控制台中批准用户。我希望管理员用户能够通过他们的浏览器批准用户。我不知所措。我知道我需要在每个未经批准的用户旁边放置“批准”和“不批准”链接,但那又如何呢?

在摘要中,我知道单击这些链接应该激活用户模型或控制器中的方法,然后使用 flash 重定向,但我已经偏离了我从初学者教程中所知道的内容。

我不确定在我的观点和路线中添加什么。我是否需要一个特殊的隐藏表单,仅当单击“批准”提交按钮并且该按钮是唯一可见元素时才将“已批准”从 false 更改为 true?

如果有人能让我朝着正确的方向开始,我可能会从那里弄清楚。

4

1 回答 1

1

@sas1ni69 的评论将我带到了Ruby on Rails link_to With put Method,它让我找到了解决方案。

在我看来,我补充说:

<%= link_to "approve", approve_user_path(user.id)  %>

在我的路线中,我添加了:

match 'users/:id/approve'=> 'users#approve_user', as: 'approve_user'

在我的用户控制器中,我添加了:

def approve_user
  user = User.find(params[:id])
  user.approved = true
  if user.save
    flash[:notice] = "#{user.full_name} approved"
  else
    flash[:alert] = "#{user.full_name} approval failure"
  end
  redirect_to :back
end

似乎像一个魅力一样工作!谢谢大家!

于 2013-03-11T19:25:34.987 回答