我現在有一個Subscriber
模型和Comment
模型。該Subscriber
的has_many comments
和comment
belongs_to的Subscriber
。我只希望訂閱者能夠在文本字段中發表評論,並且該評論通過ID屬於該訂閱者。出於某種原因,我無法弄清楚這一點,而且我正在經歷艱難的時間尋求幫助。所以,很清楚我對comment
模型subscriber_id
,我該如何連接在一起,這樣我可以在Rails的控制檯此調用 - @comment = @subscriber.comments.first
看到屬於該特定用戶的第一個評論?爲了清楚起見,我將展示一些代碼。加入兩款車型使用Rails
SCHEMA:
create_table "comments", force: :cascade do |t|
t.string "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "fav_drink"
t.string "visit_time"
t.integer "subscriber_id"
end
create_table "subscribers", force: :cascade do |t|
t.string "first_name"
t.string "last_name"
t.string "email"
t.string "phone_number"
t.string "birthdate"
t.string "street_1"
t.string "street_2"
t.string "city"
t.string "zip"
t.string "state"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "visit"
end
控制器:
class CommentsController < ApplicationController
def new
@comment = Comment.new
end
def create
@comment = Comment.create(comments_params)
if @comment.save
flash[:notice] = "Thank you!"
redirect_to subscribers_search_path(:comments)
else
render "new"
end
end
private
def comments_params
params.require(:comment).permit(:fav_drink, :subscriber_id)
end
end
class SubscribersController < ApplicationController
def index
@subscriber = Subscriber.all
end
def new
@subscriber = Subscriber.new
end
def create
@subscriber = Subscriber.create(subscriber_params)
if @subscriber.save
flash[:notice] = "Subscriber Has Been Successfully Created"
redirect_to new_subscriber_path(:subscriber)
else
render "new"
end
end
而模型是如在介紹中描述。謝謝!
除非我失去了一些東西,這看起來像一個標準的'has_many'關係。如果它不像您期望的那樣工作,您還需要包含模型的代碼。 –
是的。也許我錯過了一些東西,但我無法弄清楚如何將兩者聯繫起來。現在,如果我在視圖中設置的文本字段中留下評論,我肯定會收到該評論,但我不會附加到任何特定訂閱者。這就是我想要的評論實際上屬於某人。我很難問這個問題,因爲我真的迷失瞭解決方案 – Bitwise