我有两个模型,Downtowns和Properties。这种关系是一对多的,一个市中心,许多财产。我在市中心的显示页面上无法显示并链接到每个市中心的属性列表。
我不是获取每个属性的实际链接,而是获取HTML文本,该文本显示为几乎是一个字符串,但没有可执行路径。
而不是获得downtown property 1
作为链接,而是得到:
<a href="/downtowns/1/properties/1">downtown property 1</a>
我的路线文件是:
resources :downtowns do
resources :properties
end
我的市区管理员是:
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
def downtown_params
params.require(:downtown).permit(:name, :city)
end
我的属性控制器是:
def new
@property = Property.new
end
def create
@downtown = property.find(id)
@property = Property.create(params[:property_params])
@property.downtown_id = @downtown.id
if @property.save
redirect_to @property
else
render 'new'
end
end
def show
end
最后是我的市区秀页面:
%h2= @downtown.name
- if @downtown.properties.present?
%p
= @downtown.properties.map {|property| link_to(property.name, downtown_property_path(property)) }.join("<br/>")
- else
No downtowns for now.
在Haml中执行此操作是可能的,并且不太困难。我唯一做错的事情就是格式化的方式。
我改变了
= @downtown.properties.map {|property| link_to(property.name, downtown_property_path(property)) }.join("<br/>")
to
- @downtown.properties.collect do |property|
= link_to property.name, downtown_property_path(property)