link_to不包括Rails 2.3.8中的对象ID

时间:2010-11-19 22:53:51

标签: ruby-on-rails

我在现有的Rails控制器(reports_controller)中添加了一个方法来处理超出REST基本范围的特定操作。我们称这个动作为“细节”:

def detail

@report = Report.find(params[:id])

respond_to do |format|
  format.html # show.html.erb
  format.xml  { render :xml => @report }
end

我添加了相应的布局页面(detail.html.erb)和路由,以确保我可以从任何地方访问该页面。这就是我的路线:

  map.connect "reports/:action", :controller => 'reports', :action => /[a-z]+/i

现在我可以访问任何详细信息页面。示例页面如下所示:http://127.0.0.1:3000/reports/detail/8

现在,我正在尝试创建从主报表索引页面到详细信息页面的链接,但在使用以下代码时:

<%= link_to "Details", {:controller => "reports", :action => "detail", :id => @report }, {:title => "see details for this report"} %>

创建的链接不包含报告的ID,如下所示:

http://127.0.0.1:3000/reports/detail

知道我在做什么有什么问题吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

我想你可能在寻找:member

map.resources :reports, :member => { :detail => :get }

使用link_to

link_to "Detail", detail_report_path(@report)

答案 1 :(得分:0)

语法错误,也许? @report

后立即尝试逗号