我正在尝试在Posts表中创建一个列,这是一个数组。我希望数组存储current_user的电子邮件(或id / name等...)。
但是,出于某种原因,我无法将current_user的电子邮件附加到数组中。
数组列名为claim_users,该列的目的是存储所有已声明"声明"的用户的user_email。这篇文章。通过这种方式,我可以实现代码,以防止他们在其他事项中声明多个帖子。
我目前在我的视图中有这个:
<%= link_to "Claim This Post", { controller: :posts, action: :claim, post_id: @post.id, user_id: current_user.id },{ class: 'btn btn-default'} %>
这是我在PostsController中的行动:
def claim
@post = Post.find(params[:post_id])
@user = User.find(params[:user_id])
@post.increment!(:claim)
@post.claimed_users << current_user.id
if @post.claim < 99
redirect_to @post, notice: 'You have successfully claimed this post. You have 8 hours to post a response'
else
redirect_to @post, notice: 'Sorry, this post already has enough claims'
end
end
我添加了#34;序列化:claim_users,Array&#34;在我的帖子模型中:
class Post < ActiveRecord::Base
belongs_to :user
has_many :responses
has_many :top_responses
has_many :claims
serialize :claimed_users, Array
end
然而,我仍然没有运气。当我使用Rails控制台查看数据库时,我仍然可以获得&#34; claim_users:nil&#34;。
在此之前,我正在获得&#34; claim_users:&#34; --- [] \ n&#34;&#34;但是当我添加一些代码时,情况发生了变化,虽然我不确定到目前为止我已经尝试了很多东西并阅读了很多SO问题并且谷歌搜索结果无济于事。
我探索了为Claims / Claimed_Users创建一个新模型/控制器的想法,但是当我想到它时它没有多大意义。
非常感谢任何帮助!我还很擅长编程。