Rails 创建新文件后出错 table
Rails Having a error after creating new table
(对不起我的英语)
你好,我为我的错误创建了一个新的 post 来更清楚地解释发生了什么
我添加了一个 table“user-activities”,它让我知道用户是否看到了 activity
这是我的数据库的表示
我的问题是我无法再创建文章
显然问题出现在保存中:
日志:
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" = ORDER BY "users"."id" ASC LIMIT [["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" = LIMIT [["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
控制器:
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
当我添加新的 table 并且创建新的表单 activity 时控制器没有改变 activity 不包含错误(Group id / user IS / content /title /date etcc. . 有效)
是我的模型变了:
之前
Activity 型号:
class Activity < ApplicationRecord
belongs_to :user
belongs_to :group
validates :content, presence: true
end
user-model :
class User < ApplicationRecord
rolify
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :user_groups
has_many :activities
end
之后:
Activity 型号:
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
User-activity 型号:
class UserActivity < ApplicationRecord
belongs_to :activity
belongs_to :user
end
user-model :
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
谢谢:)
在开发过程中,它可能必须像 @activity.save
一样替换为 @activity.save!
并得到一个异常,其中包含有关您遇到的错误的更多详细信息。
(对不起我的英语) 你好,我为我的错误创建了一个新的 post 来更清楚地解释发生了什么 我添加了一个 table“user-activities”,它让我知道用户是否看到了 activity 这是我的数据库的表示
日志:
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" = ORDER BY "users"."id" ASC LIMIT [["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" = LIMIT [["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
控制器:
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
当我添加新的 table 并且创建新的表单 activity 时控制器没有改变 activity 不包含错误(Group id / user IS / content /title /date etcc. . 有效)
是我的模型变了:
之前
Activity 型号:
class Activity < ApplicationRecord
belongs_to :user
belongs_to :group
validates :content, presence: true
end
user-model :
class User < ApplicationRecord
rolify
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :user_groups
has_many :activities
end
之后:
Activity 型号:
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
User-activity 型号:
class UserActivity < ApplicationRecord
belongs_to :activity
belongs_to :user
end
user-model :
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
谢谢:)
在开发过程中,它可能必须像 @activity.save
一样替换为 @activity.save!
并得到一个异常,其中包含有关您遇到的错误的更多详细信息。