如何在rails 4中创建新的belongs_to关联模型
Posted
技术标签:
【中文标题】如何在rails 4中创建新的belongs_to关联模型【英文标题】:how to create new a belongs_to associate model in rails 4 【发布时间】:2015-03-30 22:23:29 【问题描述】:我有2个模型,房东和房产,房产属于单一房东,房东有很多房产。
我想在楼主登录的时候建个新楼盘,但是目前正在抛出NoMethodError (undefined method 'landlords_id' for #<Property:0x007fa74060a420>)
我的代码中的任何地方都没有landlords_id
,我的头发都快掉光了。
这是我的地主模型
class Landlord < ActiveRecord::Base
has_many :properties
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,:authentication_keys => [:username]
end
这是我的房产模型
class Property < ActiveRecord::Base
belongs_to :landlord
end
这是我的properties_controller.rb
class PropertiesController < ApplicationController
before_action :authenticate_landlord!
layout 'dash'
def create
@property = current_landlord.properties.build(property_params)
@landlord = current_landlord
if @property.save
redirect_to :controller=>'invites', :action => 'new' ,:landlord_id => @landlord.slug, :property_id => @property.slug
else
flash.now[:error] ="Failed To Add Property, Please Check Your Input"
render 'new'
end
end
结束
错误具体指向第28行,即if @property.save
这让我相信
@property = current_landlord.properties.build(property_params)
遇到了undefined method
landlords_id' #`
但我什至不知道这是从哪里来的。
我的代码有什么问题?
【问题讨论】:
【参考方案1】:您在代码中的某些地方使用landlords_id
而不是landlord_id
(单数)。第一个搜索位置:views/properties/new.*
和 views/properties/_form.*
。
【讨论】:
以上是关于如何在rails 4中创建新的belongs_to关联模型的主要内容,如果未能解决你的问题,请参考以下文章
Java:在 Ruby on Rails 应用程序中创建新“产品”的 HTTP Post
如何更新脚手架生成的 MVC + 路由,用于在 Rails 中具有 2 个 belongs_to 关系的嵌套资源
Rails 的belongs_to 和has_many 的同一个模型