我在现有的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
知道我在做什么有什么问题吗?
谢谢!
答案 0 :(得分:1)
我想你可能在寻找:member:
map.resources :reports, :member => { :detail => :get }
使用link_to
:
link_to "Detail", detail_report_path(@report)
答案 1 :(得分:0)
语法错误,也许? @report
后立即尝试逗号