首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails在创建新表后出现错误

Rails在创建新表后出现错误
EN

Stack Overflow用户
提问于 2018-05-28 17:31:54
回答 1查看 38关注 0票数 0

(对不起我的英语)你好,我为我的错误创建了一个新的帖子,以更清楚地解释发生了什么我添加了一个表“user - activity”,它允许我知道用户是否看到了活动这里是我的数据库的表示

我的问题是,我不能再创建一篇文章,很明显,这个问题出现在保存中:

日志:

代码语言:javascript
复制
Started POST "/activities" for 127.0.0.1 at 2018-05-24 17:21:49 +0200
Processing by ActivitiesController#create as JS
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"Cq573getfK9HBo4U9xiftsdtmScb08A28AWCcwTq2+Csn7u2hmylpjMdaB5qtJ6ZfWoHV/TZ+zF0xtgPCCp69Q==", "activity"=>{"title"=>"Activity 1 ", "content"=>"<p>dzdzqdqzdqz</p>", "group_id"=>"2"}, "commit"=>"Créer l'activité"}
  User Load (4.6ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2  [["id", 2], ["LIMIT", 1]]
  ↳ /home/benjamin/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/activerecord-5.2.0.rc1/lib/active_record/log_subscriber.rb:98
   (0.2ms)  BEGIN
  ↳ app/controllers/activities_controller.rb:9
  Group Load (2.3ms)  SELECT  "groups".* FROM "groups" WHERE "groups"."id" = $1 LIMIT $2  [["id", 2], ["LIMIT", 1]]
  ↳ app/controllers/activities_controller.rb:9
   (0.2ms)  ROLLBACK
  ↳ app/controllers/activities_controller.rb:9
Redirected to http://localhost:3000/
Completed 200 OK in 19ms (ActiveRecord: 7.4ms)

#activities_controller.rb:9 =>     if @activity.save

控制器:

代码语言:javascript
复制
  def create
    @activity = Activity.new(activity_params)
    @activity.user = current_user
    if @activity.save
      flash[:notice] = "Votre activité a été créée !"
      redirect_to root_path
    else
      flash[:alert] = "Erreur lors la création"
      redirect_to root_path
    end
  end

添加新表时控制器未更改,用于创建新活动的表单不包含错误(组id /用户为/ content /title /date etcc。是有效的)

改变的是我的模型:

之前的

活动模型:

代码语言:javascript
复制
class Activity < ApplicationRecord
  belongs_to :user
  belongs_to :group
  validates :content, presence: true
end

用户模型:

代码语言:javascript
复制
class User < ApplicationRecord
  rolify
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
  has_many :user_groups
  has_many :activities
end

之后的

活动模型:

代码语言:javascript
复制
class Activity < ApplicationRecord
  has_many :user_activities, dependent: :destroy
  has_many :users, through: :user_activities
  belongs_to :user, class_name: 'User'
  belongs_to :group
  validates :content, presence: true
end

用户活动模型:

代码语言:javascript
复制
class UserActivity < ApplicationRecord
  belongs_to :activity
  belongs_to :user    
end

用户模型:

代码语言:javascript
复制
class User < ApplicationRecord
  rolify
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
  has_many :user_groups
  has_many :user_activities
  has_many :activities, through: :user_activities

end

谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-28 17:56:45

在开发过程中,它可能不得不用@activity.save!替换@activity.save,并获得一个异常,其中包含有关错误的更多详细信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50563197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档