Я сделал таблицу «hospital_review» и таблицу «hospital_review_comments» с соотношением 1: N на рубине на рельсах. Файл миграции таблицы «hospital_review» выглядит следующим образом.My has_many - принадлежит к таблицам в рубине на рельсах, похоже, не связан.
class CreateHospitalReviews < ActiveRecord::Migration
def change
create_table :hospital_reviews do |t|
t.string :written_time
t.string :writter
t.integer :user_id
t.string :category
t.string :hospital_name
t.text :content
end
end
и "hospital_review_comments's is is this this this.
def change
create_table :hospital_review_comments do |t|
t.integer :user_id
t.integer :post_id
t.string :writter
t.string :written_time
t.text :content
t.timestamps null: false
end
end
Файл модели таблицы «hospital_review» выглядит следующим образом.
belongs_to :user
has_many :hospital_review_comments
Стол «hospital_review_comments» выглядит следующим образом.
belongs_to :user
belongs_to :hospital_review
Я хотел показать каждый обзор больницы и комментарии, написанные на нем, так что я запрограммировал коды ниже в разделе «show.html.erb».
<% @post.hospital_review_comments.each do |comment| %>
<p><strong><%=comment.user.username%></strong> <%=comment.content%></p>
и это действие шоу в файле контроллера.
def show
@post = HospitalReview.find(params[:id])
@hospital_comment_writer = User.where(id: session[:user_id])[0]
end
но ошибка occcured с сообщением
'SQLite3::SQLException: no such column:'.
Я попытался 'foregin_key' в файле модели hospital_review_comments таблицы, но это не сработало. Я не могу понять причину возникновения ошибки. Помощь Plz!
Я изменил post_id к hospital_review_id, и. теперь это работает! Большое спасибо – felipa
, вы можете принять мой ответ. Зеленая отметка. ниже секции голосования вверх и вниз. –