簡體   English   中英

從導軌上的控制器向DB添加信息

[英]Add information to DB from the controller on rails

我試圖在用戶成功提交表單后將用戶ID添加到數據庫的2列中。 這些命令在控制台中運行正常,但在控制器中不起作用。 之前我還沒有直接從控制器向數據庫添加信息,所以我認為我做錯了什么。

這是創建方法

 def create
   @game = Game.friendly.find(params[:game_id])
   @game_category = Game.friendly.find(@game.id).game_categories.new(game_category_params)

    if current_user.mod_of_game? params[:game_id] && @game_category.save

    Game.find(@game.id).game_categories.find(game_category.id).update(submitted_by: current_user.id)
    Game.find(@game.id).game_categories.find(game_category.id).update(approved_by: current_user.id)

      flash[:info] = "Game category added succesfully!"
      redirect_to @game
    else
      render 'new'
    end

end

這兩行應該將用戶ID添加到Submitted_by和roved_by列中,但沒有添加。 我沒有收到任何錯誤消息,他們只是不向這些列添加任何內容

Game.find(@game.id).game_categories.find(game_category.id).update(submitted_by: current_user.id)
Game.find(@game.id).game_categories.find(game_category.id).update(approved_by: current_user.id)

如果我將這些行替換為在控制台中可用的編碼,以查看其是否為變量或不正確的內容,則仍然無法正常工作

Game.find(12).game_categories.find(55).update(submitted_by: 1)
Game.find(12).game_categories.find(55).update(approved_by: 1)

我正在構建一個用於學習Rails的應用程序,我想這只是我不知道的事情。

有人能啟發我做錯什么嗎?

更新:

好的,現在給我一個錯誤-沒有ID找不到GameCategory

所以@ game_category.id無法正常工作?

這是您錯過@的查詢中的一個小錯字。

Game.find(@game.id).game_categories.find(@game_category.id).update(submitted_by: current_user.id)

經過四處調整之后,原來是這條線

if current_user.mod_of_game? params[:game_id] && @game_category.save

當更改為此時

if @game_category.save && current_user.mod_of_game? @game 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM