W Rails 3, można było wstawić atrybut do params tak:Szyny 4: Włóż Atrybut Do Params
params[:post][:user_id] = current_user.id
ja próbuje zrobić coś podobnego w Rails 4, ale nie mającą szczęścia:
post_params[:user_id] = current_user.id
. . . .
private
def post_params
params.require(:post).permit(:user_id)
end
Railsy ignorują to wstawianie. Nie rzuca żadnych błędów, po prostu cicho zawodzi.
Dzięki, potrzebne do korzystania deep_merge, ponieważ moje atrybuty są zagnieżdżone ... – stephenmurdoch
@marflar użyłeś 'deep_merge' w konstruktorze params? Lub gdzie indziej w twoim kontrolerze? –
Tak też to robię, ale wciąż myślę, że musi być jakiś sposób, aby to trochę DRY. Wszystkie moje 50+ kontrolery mają podobne instrukcje .merge w ścisłym zakresie params. W moim przypadku scalam current_user w updated_by. Łączę current_user do created_by tylko w metodzie create. – Dan