如何遍历值并使用Rails和Haml链接到它们

问题描述 投票:0回答:1

我有两个模型,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. 
html ruby-on-rails ruby haml
1个回答
0
投票

在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)
© www.soinside.com 2019 - 2024. All rights reserved.