我有一个简单的概念性问题让我很难过。我试图简单地添加一个名为“所有者显示”的新视图到我拥有的收件人控制器。这将是一个新页面,显示收件人的所有者,关于该收件人的“仅限所有者 - 眼睛”的详细信息。我创建了hello world erb并将其命名为ownershow.html.erb。我在控制器中添加了一个名为ownershow的空白操作。我创建了一个名为map.ownershow'/ recipients /:action /:id“:action =>'ownershow'的新路线。它炸弹。我做错了什么?听起来很简单。
答案 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>
您必须为所有路线以这种或那种方式(从路径匹配器或硬编码)至少指定控制器和操作。