gpt4 book ai didi

mysql - Rails 连接表上的路线和模型问题

转载 作者:行者123 更新时间:2023-11-29 19:09:49 24 4
gpt4 key购买 nike

我正在创建一个应用程序,允许用户为我附近的地方创建自定义行程。每个地点都存储在地方表中,并与 place_id 相关联。目前,这些地点通过行程作为连接表与用户关联。这工作正常,但我想允许用户登录并定向到一个将列出他们所有行程的 View 。为此,我需要通过一组具有标题并与 user_id 关联的用户参数创建一个新的行程实例。然后,用户可以将 place_ids 添加到该行程的实例中。不幸的是,我无法理解应该如何在事件记录中路由它。任何人都可以帮我弄清楚如何构建它,这样它就会起作用,因为我尝试的所有操作都会返回错误:没有路由匹配 [GET]“/create_itinerary”。

行程模型

class Itinerary < ApplicationRecord
belongs_to :user
belongs_to :place

结束

行程 Controller

class ItinerariesController < ApplicationController
def add_place
# current_user
@place = Place.find(params[:id])
@itenerary = @place.itineraries.create(user_id: current_user.id)

redirect_to :back
end

def index
@itinerary_places = current_user.places
end

def show
@itinerary_places = current_user.places
end

def new
@itinerary_new = Itinerary.new(params[:itinerary])

redirect_to create_itinerary_path
end

def create
itinerary = Itinerary.new(itinerary_params)
itinerary.user_id = session[:user_id]
itinerary.save
end

private

def itinerary_params
params.require(:itinerary).permit(:title)
end

end

行程 (new.html.erb)

<%= form_for @itinerary_new, url: {action: "create"}, html: {} do |f| %>

<%= f.text_field :title, placeholder: "Name Your New Itinerary" %>

<%= f.submit :class => "user_submit" %>

行程安排

get "/itinerary_new", to: "itineraries#new"
get "/itinerary_portal", to: "itineraries#index"
get "/itinerary", to: "itineraries#show"
get "/add_place/:id", to: "itineraries#add_place"
get "/delete_itinerary", to: "itineraries#destroy"
post "/create_itinerary", to: "itinerary#create"

架构

ActiveRecord::Schema.define(version: 20170402040005) do

create_table "itineraries", force: :cascade do |t|
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "place_id"
t.string "title"

end

最佳答案

问题是,当您访问 /itinerary_new 时,它会重定向到 /create_itinerary。然后http方法不匹配,因为create_itinerary只接受post,没有get

删除new操作中的redirect_to create_itinerary_path。这句话毫无意义,而且是错误的。

关于mysql - Rails 连接表上的路线和模型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43175029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com