我是rails的新手,我正在尝试链接到控制器中的特定方法。我的控制器名为OrganismsController,方法是upload_reference_file。通过查看其他类似的问题,我现在有一个link_to作为
<%= link_to "Upload Reference Sequence", :controller => :organisms, :action => :upload_reference_file %>
但是,我需要将当前有机体传递给方法upload_reference_file。我试过了
<%= link_to "Upload Reference Sequence", :controller => :organisms, :action => :upload_reference_file(organism) %>
但rails抱怨上面的代码语法不正确。 在我的路径文件中,我将方法与控制器操作匹配为
match '/organisms/upload_reference_file' => 'organisms#upload_reference_file'
非常感谢任何帮助。谢谢!
答案 0 :(得分:2)
您应该按照Rails路由文档的"Adding More RESTful Actions"部分中的说明定义RESTful操作。这将创建一个辅助方法,接受路径并允许更自然的使用。
例如,如果您没有其他成员操作:
resources :organisms do
get 'upload_reference_file', :on => :member
end
然后你会有一个upload_reference_file_organism_path
,将你的link_to
变成:
<%= link_to "Upload Reference Sequence", upload_reference_file_organism_path(organism) %>
(如果需要调整,你可以通过运行rake routes
获取创建的路径名;我的记忆力不太好。)