簡體   English   中英

參數丟失或值為空:user_club-rails

[英]param is missing or the value is empty: user_club - rails

我想調用控制器user_clubs的 create action,我這樣做是這樣的:

查看俱樂部

<button> 
   <%= link_to "Join Club", user_clubs_path(:user_id => current_user.id, :club_id => @club.id, :join_date => Date.current), :method => :post %>
</button>

控制器user_clubs

def create
    @user_club = UserClub.new(user_club_params)

    respond_to do |format|
      if @user_club.save
        format.html { redirect_to @user_club, notice: 'User club was successfully created.' }
        format.json { render :show, status: :created, location: @user_club }
      else
        format.html { render :new }
        format.json { render json: @user_club.errors, status: :unprocessable_entity }
      end
    end
  end

def user_club_params
  params.require(:user_club).permit(:user_id, :club_id, :join_date) --->**Error here**
end

錯誤信息

app / controllers / user_clubs_controller.rb:75:在user_club_params' app/controllers/user_clubs_controller.rb:28:in create'請求

    Parameters:

    {"_method"=>"post",
     "authenticity_token"=>"5Grhb+LIGt9B8XbnEcvg7BZQlDE935KO/aeikZoqxYs=",
     "club_id"=>"1",
     "join_date"=>"2014-11-17",
     "user_id"=>"2"

}

俱樂部和UserClubs不同。 Club是代表一群人的模型,user_clubs是代表Users和Club之間的多對多關系的模型。

首先,有人可以向我解釋一下如何調用user_clubs_path以及后面的參數來知道必須去執行user_clubs控制器的操作嗎?

其次,客觀問題,為什么這是一個錯誤?

這些參數需要嵌套在user_club鍵下。 嘗試以下方法:

user_clubs_path(:user_club => {:user_id => current_user.id, :club_id => @club.id, :join_date => Date.current})

第一個問題

根據您的路線定義,在終端中輸入:

rake routes

然后,您將看到所有生成的路線及其關聯的幫助程序。 第一列(rake輸出)引用命名的幫助程序:user_clubs => user_clubs_path):

第二個問題

您應該將參數添加到user_club密鑰中,因為您需要(通過strong_parameters)此“范圍” params.require(:user_club)

user_clubs_path(:user_club => {:user_id => current_user.id, :club_id => @club.id, :join_date => Date.current})

您將在控制器中收到:

{
  "_method" => "post",
  "authenticity_token" => "...",
  "user_club" => {
    "club_id" => "1",
    "join_date"=> "2014-11-17",
    "user_id"=> "2"
  }
}

暫無
暫無

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

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