0

DB に というブール値フィールドがあり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 に答える