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)

问题是,它在我网站的一个区域运行得很好。显然它没有正确设置 company_id,但是当我手动设置它时,它似乎没有解决任何问题。我觉得我已经尝试了每一种解决方案——但考虑到它在网站的其他地方也能工作,我很困惑为什么它不能在一个地方工作。(公司已定义 - 在这种情况下它的 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]}) 做 |news_form| %>

于 2012-07-08T01:34:33.930 回答