Ruby on rails 4 在向url添加区域设置后,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: 可能有相同问题的原因。它被解决了,但我不知道我怎么能把它转移到我的问题上

我试着把我的《站着的栏杆》国际化4页。我遵循基本但陈旧的指导方针,大多数步骤都很有效。我遇到的唯一大问题是rails在某些页面上混淆了我的参数

下面是一个小例子:

#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