将视图添加到现有的Rails应用程序 - 简单吗?

时间:2009-10-12 21:15:13

标签: ruby-on-rails

我有一个简单的概念性问题让我很难过。我试图简单地添加一个名为“所有者显示”的新视图到我拥有的收件人控制器。这将是一个新页面,显示收件人的所有者,关于该收件人的“仅限所有者 - 眼睛”的详细信息。我创建了hello world erb并将其命名为ownershow.html.erb。我在控制器中添加了一个名为ownershow的空白操作。我创建了一个名为map.ownershow'/ recipients /:action /:id“:action =>'ownershow'的新路线。它炸弹。我做错了什么?听起来很简单。

2 个答案:

答案 0 :(得分:1)

这部分取决于您使用的Rails版本,但我的猜测是您的路线不太正确。

我相信如果你想要一条命名路线,你需要按如下方式声明路线:

map.ownershow :controller => 'recipients', :action => 'ownershow'

但是,命名路线与常规路线有很大不同。 named route会创建一个映射,您只需说出myapp.com/ownershow而不是myqpp.com/recipients/ownershow。您可能只想添加restful member route,如此:

map.resources :recipients, :member => { :ownershow => :get } 

整个Rails routing guide是一本非常好的读物,可以帮助解释很多这类问题。

答案 1 :(得分:0)

map.ownershow '/recipients/:action/:id" :action =>'ownershow'

应该是

map.ownershow '/recipients/ownershow/:id", :controller => 'recipients', :action =>'ownershow'

第一项是您要匹配的路径以及从中选择的参数,其余的是您对该路径的所有请求进行硬编码的值(这是一种简化,但您明白了。< / p>

您必须为所有路线以这种或那种方式(从路径匹配器或硬编码)至少指定控制器和操作。