Trong Rails 3, nó đã có thể chèn một thuộc tính vào params như vậy:Rails 4: Chèn Thuộc tính Into Params
params[:post][:user_id] = current_user.id
Tôi đang cố gắng làm điều gì đó tương tự trong Rails 4, nhưng không có may mắn:
post_params[:user_id] = current_user.id
. . . .
private
def post_params
params.require(:post).permit(:user_id)
end
Đường ray bỏ qua việc chèn này. Nó không ném bất kỳ lỗi nào, nó chỉ lặng lẽ thất bại.
Cảm ơn, tôi cần thiết để sử dụng deep_merge, bởi vì thuộc tính của tôi được lồng ... – stephenmurdoch
@marflar bạn đã sử dụng 'deep_merge' bên trong hàm tạo params? Hoặc ở nơi khác trong bộ điều khiển của bạn? –
Đây là cách tôi làm điều đó cũng nhưng tôi tiếp tục nghĩ rằng phải có một cách để DRY này lên một chút. Tất cả 50 bộ điều khiển của tôi có tuyên bố .merge tương tự trong vùng thông số nghiêm ngặt. Trong trường hợp của tôi, tôi hợp nhất current_user vào updated_by. Tôi kết hợp current_user thành created_by chỉ trong phương thức create. – Dan