Rails中的RESTful帐户选择控制器



在我的应用程序中,用户登录后,会重定向到AccountsSelection控制器。在那里,我有一个索引操作,它基本上会获取用户可以使用的所有潜在帐户,并在索引视图中显示它们。

def index
  @accounts = current_user.eligible_accounts
end

在该页面中,用户可以点击其中一个帐户,这应该转到控制器中的一个操作,该操作将在会话中设置:

def show
  session[:selected_account] = params[:account_id]
  redirect_to account_path
end

现在我已经显示了该操作(所以选择帐户是在执行GET请求,但我不确定这是否是一种RESTful方式)。从我的角度来看,这不是PUT/POST,因为我没有更改任何资源或创建任何资源,但使用show操作来设置会话似乎很奇怪。

处理这件事的正确方法是什么?使用show是正确的吗?

在这种情况下,不建议使用会话。因此,标准方法是创建一个before_action来设置account_id。像这样使用:

before_action :set_account, only: [:show]

并将函数创建为:

 private
 def set_account
    account_id = params[:account_id]
 end

希望这能有所帮助。

最新更新