rails options_for_select for example blank allow ruby-on-rails ruby ruby-on-rails-3

ruby on rails - options_for_select - Carriles de todos los carriles



select in ruby on rails (4)

Además de @steel y @awenkhh, recomiendo agregar lo siguiente a la acción del controlador de esa ruta

respond_to do |format| format.html # other formats you already support format.all { render text: '''' } end

De lo contrario, terminará con algunos ActionView::MissingTemplate: Missing template errores de ActionView::MissingTemplate: Missing template para formatos que no esperaba.

[rant] Particularmente útil para aquellas personas que intentan vectores de ataque erróneos alrededor de /wp-admin/css/wp-admin.css y similares. Parece que recibo alrededor de 100 solicitudes de /wp-admin/* al día, de personas súper molestas que aparentemente me gustaría que obtuviera un plan de cuenta Rollbar más costoso. [/ Rant]

Estoy usando rieles 3.0.14, y estoy construyendo route.rb usando el estilo ingenioso. Me gustaría tener una ruta comodín que detecte todas las solicitudes que no coincidan con ninguna de las rutas indicadas.

¿Cuál es la forma apropiada de construir tal ruta?


No es obligatorio usar exactamente "ruta" en la declaración de match ''*path'' . Puedes poner un token allí:

get "*string1"

o

get "*string2"

Rails asignará su consulta HTTP real al parámetro nombrado después de su token, por ejemplo:

get "*user" => "users#show"

en la consola:

Started GET "/john" .... Processing by UsersController#show as HTML Parameters: {"user"=>"john"}

Puede usar más de un asterisco, diga get "*id*user" . Pero en este caso obtendrá un resultado impredecible, ya que Rails procesa 2 o más asteriscos "de una manera intuitiva"; para obtener más información, visite http://guides.rubyonrails.org/routing.html#route-globbing-and-wildcard-segments


Para Rail 4, necesita especificar el tipo de solicitud:

match "*path", to: "application#custom_action", via: :all

Como han dicho otros, ponga esto en la parte inferior de su archivo de rutas.


poner

match ''*path'' => ''your_controller#your_action''

al final del archivo route.rb. Esto es importante, ya que las rutas se recorren de arriba hacia abajo.

Véase también http://guides.rubyonrails.org/routing.html -> 3.10