strong rails permit multiple ruby-on-rails ruby ruby-on-rails-4 strong-parameters

ruby on rails - permit - Rails 4: Forzar valores específicos con "parámetros fuertes"



rails permit param (1)

Estoy luchando con un formulario para crear "Proyectos". Finalmente, quiero permitir solo el user_id actual, pero aún no he creado el modelo de usuario o la autenticación, así que como marcador de posición, solo estoy codificando 1 .

app / views / projects / new.html.erb:

<%= form_for(:project, :url => {:action=>''create''}) do |f| %> <%= f.text_field(:name) %> <%= f.text_field(:instructions) %> <%= f.hidden_field( :user_id, {:value=>1}) %> <%= f.submit(''Create Project'') %> <% end %>

app / controllers / projects_controller.rb

def create #save object if Project.create( project_params ) redirect_to(:action=>''show'') else render(''new'') end end private def project_params params.require(:project).permit({:user_id => [1]}, :instructions, :max_duration, :active, :max_videos, :hashed_id) end

Este es el error que recibo cuando intento enviar el formulario:

Mysql2::Error: Field ''user_id'' doesn''t have a default value: INSERT INTO `projects` (`created_at`, `instructions`, `updated_at`) VALUES (''2013-08-16 17:38:56'', ''sdfgsdf'', ''2013-08-16 17:38:56'')

Parece que el método project_params () está eliminando el user_id. ¿Qué estoy haciendo mal?


probablemente sea porque params [: user_id] es una cadena, hacer algo como esto debería funcionar.

params.require(:project).permit({:user_id => ["1"]}, :instructions, :max_duration, :active, :max_videos, :hashed_id)