Связанный параметр не проходит, а другие пройдут?Зачем? - PullRequest
0 голосов
/ 25 марта 2019

Проблема: Конкретная запись из связанной модели не будет проходить при создании, но другие из той же связанной модели будут ...

У меня есть следующее вМои создания для UserProducts:

    def create
        @user_product = UserProduct.new(user_product_params)
        @product = Product.find_by(params[:product_id])
        @user = current_user
        @user_product.user_id = @user.id
        @user_product.country = @product.country
        @user_product.production_price = @product.price

    ...

    private
    ...
        def user_product_params
          params.require(:user_product).permit(:product_id, :color, :size, :production_price, {product_ids: []})
        end

Модели:

Продукт:

has_and_belongs_to_many :user_products

Продукты пользователя:

has_and_belongs_to_many :products

Проблема, которую я не понимаю, заключается в том, что @user_product.country = @product.country прекрасно подходит для моих моделей.Но @user_product.production_price = @product.price не будет.Есть ли возможные помехи?

Модель продукта имеет t.string "price", а UserProduct имеет t.string "production_price"

Я попытался поставить .to_s в конце цены, не сработало.Попытка поставить .to_i в конце цены, тоже не сработала.

Если я сделаю user_product.production_price = @product.price + 5, он будет проходить как 5.Так что, по сути, он говорит, что production_price равен нулю, а не равен?

Моя самая большая проблема в том, что она пропускает страну, но не цену.

В CMD .Я вижу, что все проходит, в том числе: страна без production_price.Нет ошибок или недопустимых параметров и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...