0

这里的总轨道菜鸟,所以请多多包涵。很长一段时间以来,我一直在试图弄清楚如何制作一个允许登录用户通过文本字段更改用户模型的某些属性的页面。例如,我的用户模型有许多我想通过页面直接修改的“测量”属性。我的用户模型在 Devise 上运行——我不确定我是否通过直接修改用户模型来做正确的事情。

这是我的控制器。我将其设置为查找第二个用户,因为我只是对其进行测试以查看它是否有效。

class MeasurementsController < ApplicationController
    def index
        @person = User.find(2)
    end
end

这是我的 index.html.erb:

<%= form_for @person do |f| %>
    <%= f.label :style %>:
    <%= f.text_field :style %><br />
    <%= f.submit "Update"%>
<% end %>

但是,它吐出这个错误:

NoMethodError in Measurements#index
undefined method `user_path'

任何帮助将非常感激。提前非常感谢。在这里真的迷路了。

编辑:这是我的 routes.rb:

Contourfw::Application.routes.draw do
  ActiveAdmin.routes(self)

  devise_for :admin_users, ActiveAdmin::Devise.config
  devise_for :users
  root :to => 'contourfw#landingpage'
  match "measurements" => "measurements#index"
  match "styles" => "styles#index"
end
4

1 回答 1

0

看起来您需要在 config/routes.rb 中添加一个资源丰富的路由:

resources :users

更新 默认情况下,它将假定一个名为 users_controller.rb 的控制器。如果您希望它使用上面的控制器,请将其修改为:

resources :users, :controller => "measurements"

有关详细信息,请参阅http://guides.rubyonrails.org/routing.html#customizing-resourceful-routes 。

于 2013-03-19T20:33:14.853 回答