0

红宝石,Rails 3,新手

我正在为班级分配扩展一个工作的 Rails 应用程序(显示电影),所以基本的管道工作正常。

我在 routes.rb 中添加了一个条目-

match "/movies/directed_by/:director" => "movies#directed_by"

然后我的 rake 路线有一个条目

/movies/directed_by/:director(.:format) {:controller=>"movies", :action=>"directed_by"}

注意没有“路径”,也没有指定 HTTP 方法(例如 GET)

对于其他(Rails 模型自动生成的)路线,指定了路径和动词

我有一个控制器方法

def directed_by

  # some code

end

我有一个视图文件 ../app/Views/show.html.haml 我在其中添加

= link_to 'Find Movies With Same Director', directed_by(@movie.director)

这会引发运行时错误 -

NoMethodError in Movies#show

Showing /home/saasbook/hw3/hw3_rottenpotatoes_rjf/app/views/movies/show.html.haml where line #22 raised:

undefined method `directed_by' for #<#<Class:0xc564594>:0xc532198>

所以我的问题是,现在我是否要调整我的routes.rb和/或查看 haml 以将所有内容联系在一起?

欢迎所有提示。

4

1 回答 1

1

在路线:

match "/movies/directed_by/:director" => "movies#directed_by", :as => :movie_direct_by

那么在你看来:

= link_to 'Find Movies With Same Director', movie_direct_by_path(@movie.director)
于 2012-08-15T19:01:52.063 回答