0

我的数据库中有一个布尔字段,名为premium. 默认情况下它设置为 false,但是如果用户登陆某个页面,我希望它更改为 true。

我有 PHP 背景,我通常会做的是:

mysql_query("UPDATE users SET premium = true WHERE user_id = $user_id")

我想做与此完全相同的事情,但是在 Rails 中。那么,我该怎么做呢?

我试过了:

execute "UPDATE TABLE `users` SET `premium` = true WHERE user_id = current_user.id"

但是,那没有用。

4

2 回答 2

1

在 Ruby on Rails 中,对于数据库调用,大多数时候您希望使用 ActiveRecord。

您可以像这样找到特定用户:

u1 = User.find(params[:id])

或者使用当前用户并像这样修改它:

current_user.premium = true
current_user.save!

这还将为您提供各种有用的东西,例如确保查询不能被 SQL 注入。

http://guides.rubyonrails.org/active_record_querying.html

于 2012-12-10T22:45:11.530 回答
0

如果您尝试确定用户“在哪里”,正如您在问题中所述(“如果用户登陆某个页面”),则有一个助手:

<%- if request.path = "/your_special_path" %>
于 2012-12-10T22:55:43.163 回答