Ruby on rails 4 在向url添加区域设置后,Rails会混淆参数
我试着把我的《站着的栏杆》国际化4页。我遵循基本但陈旧的指导方针,大多数步骤都很有效。我遇到的唯一大问题是rails在某些页面上混淆了我的参数 下面是一个小例子:Ruby on rails 4 在向url添加区域设置后,Rails会混淆参数,ruby-on-rails-4,parameters,routes,internationalization,locale,Ruby On Rails 4,Parameters,Routes,Internationalization,Locale,我试着把我的《站着的栏杆》国际化4页。我遵循基本但陈旧的指导方针,大多数步骤都很有效。我遇到的唯一大问题是rails在某些页面上混淆了我的参数 下面是一个小例子: #url: http://localhost:3000/en/list <% @houses.each do |h| %> <%= link_to house_path(h) do %> <% end %> 编辑1: 可能有相同问题的原因。它被解决了,但我不知道我怎么能把它转移到我的问题上
#url: http://localhost:3000/en/list
<% @houses.each do |h| %>
<%= link_to house_path(h) do %>
<% end %>
编辑1:
可能有相同问题的原因。它被解决了,但我不知道我怎么能把它转移到我的问题上
No route matches {:action=>"show", :controller=>"houses", :format=>nil, :id=>nil, :locale=>#<House id: 2, name: "zgerge">} missing required keys: [:id]
<% @houses.each do |h| %>
<%= link_to house_path(:id => h) do %>
<% end %>
#url: http://localhost:3000/en/h/1
<%= simple_form_for [@house,@booking] do |f| %>
<% end %>
No route matches {:action=>"index", :controller=>"bookings", :format=>nil, :house_id=>nil, :id=>"1", :locale=>#<House id: 1, name: "new house">} missing required keys: [:house_id]
#routes
Rails.application.routes.draw do
scope "(:locale)", :locale => /en|de/ do
mount Ckeditor::Engine => '/ckeditor'
root :to => 'pages#home'
get '/impressum', :to => 'pages#impressum', :as => 'impressum'
get '/notes', :to => 'pages#notes', :as => 'notes'
# shortened url for most visited pages
get '/h/:id', :to => 'houses#show', :as => 'house'
put '/h/:id', :to => 'houses#update'
patch '/h/:id', :to => 'houses#update'
delete '/h/:id', :to => 'houses#destroy'
resources :houses, :except => [:show, :update, :destroy] do
resources :pictures
resources :bookings
end
put '/houses', :to => 'houses#activate'
put '/houses/:house_id/pictures', :to => 'pictures#set_default'
put '/houses/:house_id/bookings', :to => 'bookings#change_accepted'
get '/list', :to => 'houses#f_index', :as => 'houses_list'
devise_for :admins
end
end
#application-controller
before_action :set_locale
private
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
Rails.application.routes.default_url_options[:locale]= I18n.locale
end