我的数据表数据:
def data
theusers.map do |usermap|
[
h(usersmap.spriden_last_name),
h(usermap.spriden_first_name),
h(usermap.spriden_id),
link_to(usermap.gobtpac_username, detail_path(usermap.spriden_id))
]
end
end
以上代码位于app\datatables\helpdesk_datatable.rb
上面的工作主要是我知道它是获取数据,我得到的错误是detail_path
Error on "undefined method" for detail_path...
这意味着它没有动态构建路由器,对吗?
或者我传递了错误的东西,我试图在usermap.spriden.id中传递,只是横幅用户,同样的问题。我真的不确定路线是如何工作的。我在控制器中有一个details_controller.rb,其中有一个show方法,我有views / details / show.html.erb,它将显示传递给路径的数据,至少我认为。但它只是一个ID还是一个对象?所以如果它只是一个id我必须再次查找它 秀方法对吗?这样的路线怎么样?我正在使用设计和cancan这里是我的路线文件:
NmsuMyaccount::Application.routes.draw do
authenticated :user do
root :to => 'home#index'
match 'home', :to => 'home#index', :via => :get
end
#get 'show-details' => "details#show", as: 'show_details'
resources :details
devise_for :users
resources :users
# In order for an unauthorized user access this controller#action, this needs to be in a scope, but I don't know why.
devise_scope :user do
match 'home', :to => 'home#index', :via => :get
end
end
同样命中端点localhost:3000是一个错误,我必须转到/ home,虽然设计工作得很好。所以我认为我很接近但是因为我的生活无法使detail_path工作,我认为这是一个复数问题所以尝试过的细节,只是细节没有路径等没有骰子。
答案 0 :(得分:1)
我不相信您可以访问Rails在自定义类中提供的路由助手。因此,您必须在类中手动包含该模块。类似的东西:
link_to(usermap.gobtpac_username, Rails.application.routes.url_helpers.detail_path(usermap.spriden_id))
或者:
include Rails.application.routes.url_helpers
# Use it like you are using.
有关该主题的更多信息,请参见此处:
Can Rails Routing Helpers (i.e. mymodel_path(model)) be Used in Models?