Rails路线指向错误的地方

时间:2018-02-02 16:29:34

标签: ruby-on-rails ruby-on-rails-5

为了使我的应用程序更加干净,我决定创建一个导入控制器和一个views文件夹,而不是在我的用户控制器中创建import.html.erb视图和导入方法。

我的目标是制作网址:http://10.0.0.7/accounts/1/users/import

然而,正如人们可能认为的那样,这是指向show页面并且认为import是用户id。如何创建路由,以便它不认为单词import实际上是用户ID?

错误页面中显示的参数:{"account_id"=>"1", "id"=>"import"}

在我的路线文件中,我有这条路线负责

resources :accounts do
  resources :users do collection { post :import, :controller => "imports", :action => "users" } end
end

我也试过这条路。

resources :accounts do
  post :import, controller: 'imports', action: 'users'
end

enter image description here

1 个答案:

答案 0 :(得分:0)

我在这里看到一些问题。

首先,List<object> listObjects= new JavaScriptSerializer().Deserialize<List<object>>(json)为零。这可能是因为它是部分的,你需要将变量传入部分。

@accounts

然后在partial中使用变量<%= render partial: 'admin_sidebar', accounts: @accounts %>。另外,为什么网址中有accounts?你的基本路由应该做得很好。

我建议的路线如下:

users

这表示 - 如果对网址post 'account_users/:id', to: 'imports#users', as 'account_users'的帖子请求发送给/account_users/#控制器并使用imports方法。