Ruby on rails 是否可以在Rails控制器中链接强参数
我现在正在做这个Ruby on rails 是否可以在Rails控制器中链接强参数,ruby-on-rails,strong-parameters,Ruby On Rails,Strong Parameters,我现在正在做这个 class DetailsController < ApplicationController def create @detail = Detail.new(params.require(:detail).permit(:user_id, :note)) if @detail.save redirect_to @detail else render 'new' end end def update
class DetailsController < ApplicationController
def create
@detail = Detail.new(params.require(:detail).permit(:user_id, :note))
if @detail.save
redirect_to @detail
else
render 'new'
end
end
def update
@detail = Detail.find(params[:id])
if @detail.update(detail_params)
redirect_to @detail
else
render 'edit'
end
end
private
def detail_params
params.require(:detail).permit(:note)
end
end
类详细信息控制器
Rails中的参数是否可能太强?我试着这么做,但没有成功
class DetailsController < ApplicationController
def create
@detail = Detail.new(detail_params.permit(:user_id))
if @detail.save
redirect_to @detail
else
render 'new'
end
end
def update
@detail = Detail.find(params[:id])
if @detail.update(detail_params)
redirect_to @detail
else
render 'edit'
end
end
private
def detail_params
params.require(:detail).permit(:note)
end
end
类详细信息控制器
为了使事情干涸,我使用了方法并做了类似的事情
def detail_params(is_create = false)
params.require(:detail).permit(:note).tap do |p|
p[:user_id] = current_user.id if is_create
end
end
def create
@detail = Detail.new(detail_params(true))
if @detail.save
redirect_to @detail
else
render 'new'
end
end
def update
@detail = Detail.find(params[:id])
if @detail.update(detail_params)
redirect_to @detail
else
render 'edit'
end
end
为了得到不同的参数集,这是可行的
def detail_params(is_create = false)
permitted = [:note]
permitted << :user_id if is_create
params.require(:detail).permit(permitted)
end
def detail_参数(is_create=false)
允许=[:注]
你想完成什么?仅为创建而添加用户id?是:)完全正确。是否可以将用户id
作为创建操作中允许的参数之一插入(而不是将其值设置为当前用户)?@vince,当然可以。甚至不需要水龙头。为答案添加了示例。