0

私は他のすべての質問と回答を無駄にした。

私のフォームは次のように始まります。

<% @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です)。

4

3 に答える 3

1

使ってみてください

company.news.build

新しいのではなく。その後、特別なことをする必要はありません。

<% @new_article = company.news.build %>
<%= form_for([company, @new_article]) do |news_form| %>
于 2012-07-08T02:53:27.167 に答える
0

会社が定義されていて、インスタンス変数を介してパーシャルに渡されたとしても、ページ内の他のものには問題がないようです(正常に動作している)。私が次のようなことをするとき:

<% @c = Company.find_by_id(company.id) %>
<% @new_article = @c.news.build %>
<%= form_for([@c, @new_article]) do |news_form| %>

正常に動作します。非常に奇妙な。

于 2012-07-08T15:03:57.940 に答える
-1

company.id <%= form_for(@new_article、{:url => [company.id、@new_article]})do |news_form|が必要です %>

于 2012-07-08T01:34:33.930 に答える