私は他のすべての質問と回答を無駄にした。
私のフォームは次のように始まります。
<% @new_article = company.news.new %>
<%= form_for(@new_article, {:url => [company, @new_article]}) do |news_form| %>
エラーは次のとおりです。
Routing Error
No route matches {:action=>"show", :controller=>"news", :company_id=>nil, :id=>2}
レーキルートはこれを言います:
company_news_index GET /companies/:company_id/news(.:format)
{:action=>"index", :controller=>"news"}
POST /companies/:company_id/news(.:format)
{:action=>"create", :controller=>"news"}
new_company_news GET /companies/:company_id/news/new(.:format)
{:action=>"new", :controller=>"news"}
edit_company_news GET /companies/:company_id/news/:id/edit(.:format)
{:action=>"edit", :controller=>"news"}
company_news GET /companies/:company_id/news/:id(.:format)
{:action=>"show", :controller=>"news"}
PUT /companies/:company_id/news/:id(.:format)
{:action=>"update", :controller=>"news"}
DELETE /companies/:company_id/news/:id(.:format)
問題は、それが私のサイトの1つの領域で問題なく機能することです。明らかに、company_idを適切に設定していませんが、手動で設定した場合、何も修正されていないようです。私はすべての解決策を試したように感じますが、それがサイトの他の場所で機能することを考えると、なぜそれが1つの場所で機能しないのか混乱しています。(会社は定義されています-この場合、IDは2です)。