У меня странная проблема. У меня в приложении две модели: даунтаунс и свойства. Даунтаун должен иметь несколько свойств, а свойства должны иметь один центр города.
На моей странице в центре города укажите oop через свойства в каждом центре города, а затем предложите ссылки на эти объекты.
Проблема в том, что ..... когда я нажимаю на каждое свойство, URL возвращается назад. IE, центр города с идентификатором 1 и свойством с идентификатором 8 должен go
downtown/1/properties/8
все же он продолжает работать
downtown/8/properties/1
Я думаю, что это так странно, и я понятия не имею, что я делаю здесь неправильно.
На моей странице показа в центре города, по 1030 * через каждое свойство
%h2= @downtown.name
- if @downtown.properties.present?
%p
- @downtown.properties.collect do |property|
= link_to property.name, downtown_property_path(property)
- else
No downtowns for now.
Мои маршруты - это базовая c вложенная маршрутизация здесь
resources :downtowns do
resources :properties
end
мои свойства контроллер -
class PropertiesController < Downtown::ApplicationController
before_action :find_property, only: [:show, :edit, :update, :destroy]
def new
@property = @downtown.properties.new
end
def create
@property = @downtown.properties.new(property_params)
if @property.save
redirect_to @downtown
else
render :new
end
end
def show
end
private
def property_params
params.require(:property).permit(:name, :downtown, :downtown_id......)
end
def find_property
@property = Property.find(params[:id])
end
end
Мой контроллер в центре города -
class DowntownsController < ApplicationController
before_action :find_downtown, only: [:show, :edit, :update, :destroy]
def show
@properties = Property.where(downtown: @downtown_id)
end
def new
@downtown = Downtown.new
end
def create
@downtown = Downtown.create(downtown_params)
if @downtown.save
redirect_to @downtown
else
render 'new'
end
end
private
def downtown_params
params.require(:downtown).permit(:name, :city)
end
def find_downtown
@downtown = Downtown.find(params[:id])
end
end
Наконец, в форме моих свойств у меня есть полиморф c путь
= simple_form_for([@property, @downtown]) do |f|
= f.input :name
= f.input :last_remodel
= f.input :original_construction_year