为什么不能显示餐馆名单?

时间:2016-06-08 09:51:48

标签: ruby-on-rails slim-lang

我想尝试做一些餐馆名单。 我关联了两个表,然后编写这段代码。

class Restaurant < ActiveRecord::Base
        has_many :restaurant_translations
end

class RestaurantTranslation < ActiveRecord::Base
        self.table_name = 'restaurant_translations'
end

restaurant_controller.rb

class RestaurantController < ApplicationController
        def list
                @restaurants = Restaurant.all
logger.debug @restaurants
        end
end

list.html.slim     表       THEAD         TR           类型           名字           网址           th类型           加地址

  tbody
    - @restaurants.each do |restaurant|
      tr
        td = restaurant.restaurant_type
        td = restaurant.restaurant_translations.restaurantname
        td = link_to 'here', restaurant.url
        td = restaurant.genre
        td = restaurant.restaurant_translations.address

但结果低于。 &#34;未定义的方法`restaurantname&#39;对于#&#34;

enter image description here

我该怎么办?提前谢谢。

3 个答案:

答案 0 :(得分:2)

您的日常工作有多个'restaurant_translations'。

示例,首先您可以编写td = restaurant.restaurant_translations.first.try(:restaurantname)

答案 1 :(得分:1)

替换

 td = restaurant.restaurant_translations.restaurantname

td = restaurant.restaurant_translations.first.restaurantname

这会对你有所帮助

答案 2 :(得分:-1)

因为Restaurent has_many:restaurant_translations 所以你需要循环

restaurant.restaurant_translations.each do|res_trans|
your code here
end