Mon problème est que j'ai 2 contrôleurs (articles & nouvelles), quand je édite des articles mes mises à jour sont enregistrées en DB. mais lorsque je tente de faire la même chose avec des nouvelles que je reçois cette erreurrails mélange id et paramètres régionaux de poste
Started PUT "/1" for 127.0.0.1 at 2012-11-21 10:30:17 +0200
Processing by NewsController#index as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"OyzVdh0yLz4fGAPwU+tKzuy8B5Wb0exV4+4OjE5UHt8=", "news"=>{"title"=>"fsf", "text"=>"<p>fsdfsfds</p>"}, "commit"=>"Update News", "locale"=>"1"}
1 translation's not available
et je ne vois aucune différence entre ces deux actions dans le code
routes
scope '(:locale)' do
get 'articles/autocomplete_article_title'
resources :users
resources :news do
end
resources :articles do
end
# match "/news*tail" => 'news#index'
root :to => 'News#index', as: 'news'
end
S'il vous plaît aider!
Merci beaucoup d'avance!
Mise à jour 1
L'erreur semble être dans le routage (parce que c'est le lieu qui jette l'erreur
def set_locale_from_params
if params[:locale]
if I18n.available_locales.include?(params[:locale].to_sym)
I18n.locale = params[:locale]
else
flash.now[:notice] =
"#{params[:locale]} translation\'s not available"
logger.error flash.now[:notice]
end
end
end
def default_url_options
{locale: I18n.locale}
end
Mise à jour 2
Et ce dump de params en cas d'erreur. aucun champ pour id ici
{"utf8"=>"✓", "_method"=>"put", "authenticity_token"=>"OyzVdh0yLz4fGAPwU+tKzuy8B5Wb0exV4+4OjE5UHt8=", "news"=>{"title"=>"fsf", "text"=>"<p>fsdfsfds</p>"}, "commit"=>"Update News", "controller"=>"news", "action"=>"index", "locale"=>"1"}
Mise à jour 3
essayé de définir scope '(:locale)', :locale => /en|ru/ do
dans les routes comme ici http://guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-url-params n'a pas aidé.
Mise à jour 4
Le problème est que form_for pointe vers /: id url, qui est écrasé par la route racine. changeant ainsi form_for à form_for(@news, url: news_path(@news))
et doivent mettre local ici ... chercher comment faire
Que faire si vous supprimez "as: 'news'" de root root? –
non, n'a pas aidé – Elmor
J'ai posté la réponse ci-dessous – Elmor