rails在表单提交时将当前用户电子邮件存储在数据库

问题描述 投票:0回答:2

我的数据库中有一个名为“email”的列。我想在提交特定表单时将当前登录用户的电子邮件地址存储到此列中。

起初我以为我应该在html中写一些内容来获取当前用户的电子邮件地址并将其隐藏在某个地方,但我意识到这可能是一个坏主意,因为任何人都可以修改html以放置任何电子邮件地址想要在那里。

所以我的问题是,我会在控制器中进行此操作吗?如果是这样,我将如何做到这一点?

ruby-on-rails forms
2个回答
0
投票

我将其他模型命名为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

希望这可以帮助


0
投票

弄清楚了

@request.email = current_user.email @request.save

© www.soinside.com 2019 - 2024. All rights reserved.