我正在處理Rails中的嵌套資源。我的用戶有一個農場。RoR:未定義的方法#<Class>
用戶模型:
class User < ActiveRecord::Base
has_one :farm
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:token_authenticatable, :confirmable, :lockable, :timeoutable
attr_accessible :email, :password, :password_confirmation, :remember_me, :username
end
電場控制器
class Farm < ActiveRecord::Base
belongs_to :user
attr_accessible :name, :contact, :adress, :user_id
end
我的農場遷移
class CreateFarms < ActiveRecord::Migration
def change
create_table :farms do |t|
t.references :user
t.string :name
t.string :contact
t.string :adress
t.timestamps
end
end
end
我的routes.rb
resources :users do
resource :farm, path: "farm"
end
devise_for :users, :path => 'account
所以我想我所有的參考和協會都可以。但是當我試圖建立一個新的農場時,我得到了上述錯誤。我在FarmsController新方法:
def new
@farm = @user.farm.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @farm }
end
end
我也有一個設置爲的before_filter
def load_User
@user = User.find(current_user)
end
同樣的事情發生了我的節目的功能在這裏我使用
@farm = @user.farm.find(params[:id])
它說load_User功能沒有方法「找到」。 我不能猜測或者發現這是爲什麼,如果有人可以幫助和/或闡述..
我剛纔補充說它對「查找」方法也一樣。 – 2014-08-27 13:42:50
你應該考慮在用戶模型中刪除這些'attr_accessible'(可能也是農場),因爲它有點誤導。 – 2014-08-27 13:49:52
有任何答案對您有幫助嗎? – 2014-08-28 07:09:50