问题
I'm trying to make some restaurant list. I associated two tables, and then write this code.
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 table thead tr th Type th Name th Url th Genre th Addr
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
But results are belows. "undefined method `restaurantname' for #"
How can I do this problem? Thanks in advance.
回答1:
Your restauration have multiple 'restaurant_translations'.
Example, for first you can write td = restaurant.restaurant_translations.first.try(:restaurantname)
回答2:
replace
td = restaurant.restaurant_translations.restaurantname
with
td = restaurant.restaurant_translations.first.restaurantname
this will help you
回答3:
because Restaurent has_many :restaurant_translations so you need to loop through
restaurant.restaurant_translations.each do|res_trans|
your code here
end
来源:https://stackoverflow.com/questions/37699092/why-cant-show-restaurant-list