simple_forms有两个类

时间:2017-01-23 20:29:05

标签: ruby-on-rails simple-form

我有一个控制器用于属性,另一个用于国家一个属性有一个国家

我的房产模型

class Property < ApplicationRecord

  acts_as_paranoid

  has_one :country, class_name: Country
  belongs_to :company

  accepts_nested_attributes_for :country

  validates :name, presence: true
  validates :address, presence: true

我的国家/地区型号

class Country < ApplicationRecord

  acts_as_paranoid

  belongs_to :property

  validates :name, presence: true
  validates :isoalpha2, presence: true
  validates :isolapha3, presence: true

当我想在我的视图中添加一个属性(new.html.erb)

<%= simple_form_for [@property, @country], url: property_new_path   do |f| %>
    <% if @property.errors.any? %>

            <%= pluralize(@property.errors.count, "error") %> prohibited
            this property from being saved:

            <% @property.errors.full_messages.each do |msg| %>
                <li><%= msg %></li>
            <% end %>

    <% end %>
            <%= f.input :name %>
            <%= f.input :description %>
            <%= f.input :address %>

          <%= f.submit %>

我收到以下错误:

未定义的方法`描述&#39;对于#&lt; 国家/地区:0x8de0b20&gt;

我不知道为什么要使用Country类而不是Property,因为description是属性控制器的一部分

谢谢

1 个答案:

答案 0 :(得分:0)

那应该是

<%= simple_form_for [ @country, @property] do |f| %>

和路线应采用嵌套形式

resources :countries do
  resources :properties, except: [:index]
end

希望这对你有用