[英]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.