Ruby on rails 通过动态属性编辑资源路径

Ruby on rails 通过动态属性编辑资源路径,ruby-on-rails,activerecord,ruby-on-rails-4,Ruby On Rails,Activerecord,Ruby On Rails 4,程序(对象) 现在,如果我称之为 p = Program.first program_path(p) 我明白了 ActionController::UrlGenerationError: No route matches {:locale=>:en, :action=>"show", :controller=>"programs", :id=>nil, :format=>nil} missing required keys: [:subdomain, :id]

程序(对象)

现在,如果我称之为

p = Program.first
program_path(p)
我明白了

ActionController::UrlGenerationError: No route matches {:locale=>:en, :action=>"show", :controller=>"programs", :id=>nil, :format=>nil} missing required keys: [:subdomain, :id]
我已经在我的模型中设置了attr_访问器。还缺少什么

我的url应该是:
http://example.com/uk/programs/1-bee-movie

顺便说一句,我之所以调用“:subdomain”是因为旧的原因。因为以前是uk.example.com,但是现在,对于搜索引擎优化,应该是example.com/uk

the routes.rb

scope "/(:subdomain)" do
    resources :programs
end
查看文件

program_path(program, :subdomain => 'uk')
解决了

使用:子域与Rails的“子域”冲突

url program_url(p, :country_prefix => 'uk')

我无法删除:子域,因为我希望每个链接都有自己的/uk/I必须在数千个部分中进行编辑。我正在寻找一些可以编辑routes.rb中的资源的东西。这是因为“子域”是程序的一个属性
scope "/(:subdomain)" do
    resources :programs
end
program_path(program, :subdomain => 'uk')
url program_url(p, :country_prefix => 'uk')