如何循环遍历值并使用 Rails 和 Haml 链接到它们
How to loop through values and linking to them using Rails and Haml
我有两个模型,Downtowns 和 Properties。关系是一对多的,一个市区,很多物业。我在显示和 link 访问市区显示页面上每个市区属性的列表时遇到问题。
而不是每个 属性 的实际 link,我得到的是 HTML 文本,显示在几乎看起来是字符串的内容中,但没有可执行路径。
我得到的不是 downtown property 1
作为 link,而是:
<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/>")
至
- @downtown.properties.collect do |property|
= link_to property.name, downtown_property_path(property)
我有两个模型,Downtowns 和 Properties。关系是一对多的,一个市区,很多物业。我在显示和 link 访问市区显示页面上每个市区属性的列表时遇到问题。
而不是每个 属性 的实际 link,我得到的是 HTML 文本,显示在几乎看起来是字符串的内容中,但没有可执行路径。
我得到的不是 downtown property 1
作为 link,而是:
<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/>")
至
- @downtown.properties.collect do |property|
= link_to property.name, downtown_property_path(property)