控制器视图通信,Ruby on Rails

时间:2012-04-28 18:51:51

标签: ruby-on-rails ruby

当选择输入按钮时,我试图递增存储在params[:id]中的值,并在用户访问页面时存储原始值。我如何实现这一目标?

我已经成功增加了值,但我不确定如何完成存储原始值?

2 个答案:

答案 0 :(得分:0)

HTTP协议是无状态协议,因此您要使用的任何变量都必须来自数据库或来自用户。也许你应该将start_id包含在链接中。

答案 1 :(得分:0)

有几种方法可以保持" start"的价值。请求之间。正如Matzi建议的那样,你可以将url中的值作为请求之间的查询字符串的一部分。

link_to "next", your_path(start: params[:start], count: (params[:count].to_i + 1))

您还可以将值保留在用户来自控制器的会话中:

session[:start] = params[:start]

然后使用session[:start]检索它。

您也可以从控制器中将其推送到您自己的特殊Cookie中:

cookies[:start] = params[:start]
# or
cookies.permanent[:start] = params[:start]

或者您可以将params[:start]保存到数据库,如果这些数据持续存在非常重要。

希望这有助于指明你正确的方向。