Saya menghadapi masalah dengan tapak saya yang telah saya cuba selesaikan sekurang-kurangnya beberapa minggu, jadi saya berharap seseorang dapat menunjukkan di mana silap saya. Untuk beberapa latar belakang, saya seorang graduan baru-baru ini dan ini adalah projek batu penjuru yang saya bina untuk projek akhir saya, sebelum demo saya tidak mendapat semua ciri yang saya inginkan, sekarang saya telah menamatkan kursus yang saya cuba untuk memberi pengenalan Ciri-ciri yang saya rasa tiada. Walaupun begitu, saya membina senarai hajat filem seram menggunakan bahagian belakang Rails dan bahagian hadapan Vue dengan tema Bootstrap yang boleh saya tambahkan pada senarai pantau dan sama ada menambahkannya pada senarai yang digemari atau senarai benci, tetapi perkara terakhir yang saya mahu ialah kerana apabila anda mengklik butang untuk menambahkannya pada senarai tersebut, ia mengalihkannya keluar daripada senarai yang tidak ditonton. Saya mempunyai boolean yang disediakan di bahagian belakang tetapi sepanjang hayat saya, saya tidak boleh mendapatkan logik yang betul untuk mengubahnya daripada benar kepada palsu Saya tidak tahu sama ada saya memerlukan sesuatu di bahagian hadapan atau apa tetapi seperti yang saya katakan saya kita Telah cuba menyelesaikan masalah ini selama sekurang-kurangnya dua minggu sekarang, jadi sebarang bantuan adalah bagus.
Seni Bina Saya
create_table "hatedits", force: :cascade do |t|
t.integer "movie_id"
t.integer "user_id"
t.string "box_art"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
create_table "lists", force: :cascade do |t|
t.integer "user_id"
t.integer "movie_id"
t.boolean "watched"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
create_table "lovedits", force: :cascade do |t|
t.integer "movie_id"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.integer "user_id"
t.string "box_art"
end
create_table "movies", force: :cascade do |t|
t.string "name"
t.string "description"
t.string "box_art"
t.string "sub_genre"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.integer "year"
t.string "category"
end
create_table "users", force: :cascade do |t|
t.string "name"
t.string "email"
t.string "password_digest"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
end
My Rails mengemas kini dan mencipta fungsi (saya rasa itulah masalahnya, tetapi saya tidak dapat melihatnya.)
def create
list = List.create(
user_id: current_user.id,
movie_id: params[:movie_id],
watched: false,
)
if list.save
render json: list
else
render json: {errors: list.errors.full_messages}, status: 406
end
end
def update
list = List.find_by(id: params[:id])
list.movie_id = params[:movie_id] || list.movie_id
if watched = true
render json: list
end
if list.save
render json: list
else
render json: {errors: list.errors.full_messages}, status: 406
end
end
Saya mempunyai bahagian hadapan dengan butang dan kaedah untuk beralih ke senarai berbeza yang berfungsi tetapi apabila filem dialihkan ke senarai suka atau tidak suka, filem itu tidak mengalih keluar filem itu daripada senarai yang tidak ditonton,
<template>
<div class="list">
<br />
<br />
<br />
<br />
<br />
<section id="portfolio" class="portfolio">
<div class="container">
<div class="row portfolio-container">
<div class="col-lg-4 col-md-6 portfolio-item filter-app" v-for="list in lists"
v-bind:key="list.id">
<div class="portfolio-wrap">
<img :src="`${list.movie.box_art}`" />
<br />
<div class="portfolio-info">
<div class="portfolio-links">
<button v-on:click="lovedIt(list)">Loved It</button>
<br />
<br />
<button v-on:click="hatedIt(list)">Hated It</button>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</template>
<style>
.list {
text-align: center;
color: white;
}
img {
height: 624px;
width: 370px;
}
</style>
<script>
import axios from "axios";
export default {
data: function () {
return {
list: {},
lists: {},
movie: [],
currentUser: localStorage.getItem("user_id"),
};
},
created: function () {
this.indexLists();
},
methods: {
indexLists: function () {
axios.get("/lists").then((response) => {
this.lists = response.data;
console.log("list", response.data);
});
},
addMovie: function () {
axios.post("/lists", this.movie).then(() => {
this.$router.push("/lists");
});
},
lovedIt: function (list) {
this.list = list;
axios
.post("/lovedits", {
user_id: this.currentUser.id,
movie_id: this.list.movie_id,
})
.then(() => {
console.log("yo");
this.$router.push("/lovedit");
location.reload();
});
},
hatedIt: function (list) {
this.list = list;
axios
.post("/hatedits", {
user_id: this.currentUser.id,
movie_id: this.list.movie_id,
})
.then(() => {
console.log("sup");
this.$router.push("/hatedit");
location.reload();
});
},
},
};
</script>
Adakah anda membuat tugasan dan bukannya perbandingan dalam
ifpernyataan di sini?def update list = List.find_by(id: params[:id]) list.movie_id = params[:movie_id] || list.movie_id if watched **==** true render json: list end