我的数据库中有一个名为“email”的列。我想在提交特定表单时将当前登录用户的电子邮件地址存储到此列中。
起初我以为我应该在html中写一些内容来获取当前用户的电子邮件地址并将其隐藏在某个地方,但我意识到这可能是一个坏主意,因为任何人都可以修改html以放置任何电子邮件地址想要在那里。
所以我的问题是,我会在控制器中进行此操作吗?如果是这样,我将如何做到这一点?
我将其他模型命名为Article(你可以使用你的)
在该表中有一个名为user_id的列而不是电子邮件
Class User
has_many :articles
end
Class Article
belongs_to :user
end
class ArticlesController
def create
@article = current_user.articles.new(article_params)
@article.save
end
def article_params
params.require(:article).permit(:field1, :field2)
end
end
如果您执行此类操作,则自动user_id将保存在该表中。因此,您可以轻松获得属于该用户的所有文章。
user = User.first
user.artciles # you will get all articles belonged to that user
article = Article.first
article.user # you will get user of that article
希望这可以帮助
弄清楚了
@request.email = current_user.email
@request.save