gpt4 book ai didi

ruby-on-rails-4 - ruby 轨道 : Getting Params from URL

转载 作者:行者123 更新时间:2023-12-01 17:46:44 27 4
gpt4 key购买 nike

在 Rails 4 上,我无法从 Controller 中的 URL 获取参数。

我有两个具有 has_many 和 belongs_to 关联的模型,我们称它们为 Books 和 Pages。我想创建一个新的页面记录并将其链接到 Book 模型,具体取决于用户在单击“创建”按钮时访问的是哪本书(即,如果用户在侏罗纪公园图书页面上并单击“创建, “我想创建一个与侏罗纪公园相关的新页面。”

这是我认为的创建链接:

<%= link_to "Create page", new_page_path(:book => @book.id), :id => "submit-button" %>

这是我的 Controller :

def new
@page = Page.new
end

def create
@book = Book.find(params[:book])
@page = Product.new(page_params)
@page.book_id = @book.id
if @page.save
flash[:success] = "Page Submitted!"
redirect_to @book
else
render 'new'
end
end

我收到以下错误:

"ActiveRecord::RecordNotFound in PagesController#create - Couldn't find Book without an ID"

我这样做完全错了吗?我知道 Rails 4 改变了参数的工作方式,这与获取 URL 参数的语法相同,所以也许这就是导致此问题的原因。

编辑:我也尝试从“new”中获取参数作为变量,然后将其用作 id,但我得到了相同的错误消息。

最佳答案

new_page_path 将在这里调用“新建”操作,即 GET。它不会像您期望的那样调用“创建”操作。理想情况下,您想调用“创建”操作。试试这个:

button_to 'Create Page', pages_path(:book => @book.id), :method => :post

link_to 通常应该只指向 GET 操作。对于此类事情,用户 button_to 是首选。

关于ruby-on-rails-4 - ruby 轨道 : Getting Params from URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16926120/

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