Как исправить ошибку в теге ** form_with **, не передающем атрибуты ассоциативной модели в параметры в Rails

В Swift 3.0:

var value: Int = 10
var string = String(describing: value)
-2
задан Bismark Atta Frimpong 17 January 2019 в 07:47
поделиться

1 ответ

Я исправил ошибки, которые получил после того, как опробовал большинство рекомендаций без решений. Я начал с просмотра ассоциаций моделей и отключения одного из методов, таких как inverse_of, accepts_nested_attribute_for и attr_accessor, один за другим.

До

class UserActivity < ApplicationRecord

    # ----ASSOCIATION OF MODELS----

    # a UserActivity belongs to a User
    # and UserActivity belongs to an Activity
    belongs_to :user, inverse_of: :user_activities
    belongs_to :activity, optional: true, inverse_of: :user_activities 

    attr_accessor :user_activity_date, :user_activity_start,  :user_activity_end, :user_activity_note, :activity_id, :user_id

    accepts_nested_attributes_for :activity, :user

    # ----MODEL VALIDATIONS----
    validates_presence_of :user_activity_end, presence: true, null: false, :message => "cannot be empty"
    validates_presence_of :user_activity_start, presence: true, null: false, :message => "cannot be empty"
    validates_presence_of :user_activity_date, presence: true, null: false, :message => "cannot be empty"
    validates_presence_of :user_activity_note, presence: true, length: { minimum: 10 }, null: false, :message => "cannot be empty"

    validates :user, presence: true
    validates :activity, presence: true
end

После

class UserActivity < ApplicationRecord

    # ----ASSOCIATION OF MODELS----

    # a UserActivity belongs to a User
    # and UserActivity belongs to an Activity
    belongs_to :user, inverse_of: :user_activities
    belongs_to :activity, optional: true, inverse_of: :user_activities 

    accepts_nested_attributes_for :activity, :user

    # ----MODEL VALIDATIONS----
    validates_presence_of :user_activity_end, presence: true, null: false, :message => "cannot be empty"
    validates_presence_of :user_activity_start, presence: true, null: false, :message => "cannot be empty"
    validates_presence_of :user_activity_date, presence: true, null: false, :message => "cannot be empty"
    validates_presence_of :user_activity_note, presence: true, length: { minimum: 10 }, null: false, :message => "cannot be empty"

    validates :user, presence: true
    validates :activity, presence: true
end

Результаты консоли

Started POST "/user_activities" for 127.0.0.1 at 2019-01-18 02:11:27 +0100
Processing by UserActivitiesController#create as HTML
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"Z6DP3METaYH2oczN11Mpewy4K4E1Gj+24twDM4NHI0y2abKn1CnW1M9993+u+3+9Gh4Rmz/k9g+/pVIpCltSNQ==", "user_activity"=>{"activity_id"=>"2", "user_activity_date"=>"2018-12-18", "user_activity_start"=>"09:56", "user_activity_end"=>"11:00", "user_activity_note"=>"still testing for errors in the app"}, "commit"=>"Create User activity"}
   The activity ID which is received is -> 2
   Date -> 2018-12-18
   Start Time -> 09:56
   End Time -> 11:00
   Activity Note -> still testing for errors in the app
       User Load (0.7ms)  SELECT  `users`.* FROM `users` WHERE `users`.`id` = 1 ORDER BY `users`.`id` ASC LIMIT 1
       ↳ app/controllers/user_activities_controller.rb:54
       (0.4ms)  BEGIN
       ↳ app/controllers/user_activities_controller.rb:57
       UserActivity Create (0.7ms)  INSERT INTO `user_activities` (`user_activity_date`, `user_activity_start`, `user_activity_end`, `user_activity_note`, `created_at`, `updated_at`, `user_id`, `activity_id`) VALUES ('2018-12-18 00:00:00', '09:56:00', '11:00:00', 'still testing for errors in the app', '2019-01-18 01:11:28', '2019-01-18 01:11:28', 1, 2)
       ↳ app/controllers/user_activities_controller.rb:57
       (0.4ms)  COMMIT
       ↳ app/controllers/user_activities_controller.rb:57
Redirected to http://localhost:3000/user_activities/7
Completed 302 Found in 111ms (ActiveRecord: 4.3ms)

У меня было accepts_nested_attribute_for [ 1111] в модели UserActivity и используемые переменные были точно такими же, как и у уже установленных атрибутов, и поэтому они конфликтовали.

Сразу после того, как я отключил это, я смог сохранить в базу данных, и теперь все работает хорошо.

Я благодарю вас за вашу поддержку, поскольку они дали мне представление о том, куда направить мою технику поиска ошибок.

0
ответ дан Bismark Atta Frimpong 17 January 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: