我的控制器中有一个create动作。
def create
@client=Client.find(params[:client_id])
@comment= @client.build_comment( comment_params )
if @comment.save
flash[:success]= "Thank you!"
redirect_to path_one
else
render action: :new
end
end
private
def comment_params
params.require(:comment).permit(:response, :experience)
end
现在,在我的创建操作中,每当客户提交表单时,我都希望能够根据“体验”的值重定向到其他路径。
所以,如果经验是“积极的”,我希望他们去path_one,如果经验是“消极的”,我希望他们去path_two。
我尝试过:
def create
@client=Client.find(params[:client_id])
@comment= @client.build_comment( comment_params )
if @comment.save
if params[:experience]=="positive"
flash[:success]= "Thank you!"
redirect_to path_one
else
render action: :new
else
redirect_to path_two
end
end
end
private
def comment_params
params.require(:comment).permit(:response, :experience)
end
但这总是重定向到同一路径。
答案 0 :(得分:0)
if语句的else
部分顺序错误。试试这个:
if @comment.save
if params[:experience]=="positive"
flash[:success]= "Thank you!"
redirect_to path_one
else
redirect_to path_two
end
else
render action: :new
end
答案 1 :(得分:0)
尝试一下:
if @comment.save
if comment_params[:experience]=="positive"
flash[:success]= "Thank you!"
redirect_to path_one
else
redirect_to path_two
end
else
render action: :new
end
现场经验不是在params内部,而是在params [:comment]内部(或者在本例中,在comment_params方法内部)