Rails将当前用户的电子邮件存储在表单提交的数据库中

时间:2019-02-25 04:26:55

标签: ruby-on-rails forms

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

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

所以我的问题是,我可以在控制器中解决这个问题吗?如果是这样,我将如何去做?

2 个答案:

答案 0 :(得分:0)

我将其他模型命名为Article(您可以使用您的模型)

该表中有一列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

如果您这样做,则user_id将自动保存在该表中。 因此,获取属于该用户的所有文章将很容易。

const
    sort = o => Object.assign({}, ...Object
        .keys(o)
        .sort()
        .map(k => ({ [k]: o[k] && typeof o[k] === 'object' ? sort(o[k]) : o[k] }))
    );

var obj = { ABCD: { E: { }, R: { }, A: { } }, WXYZ: { F: { }, M: { }, G: { }, A: { } }, MNOP: { A: { }, H: { }, B: { }, C: { } }, EFGH: { D: { }, C: { }, B: { }, E: { } } },
    sorted = sort(obj);

console.log(sorted);

希望这会有所帮助

答案 1 :(得分:0)

想通了

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