Database 如何在RubyonRails中编写insert语句?
我在RubyonRails上运行insert语句。但失败了。代码如下:Database 如何在RubyonRails中编写insert语句?,database,ruby-on-rails-3,updating,insert-query,Database,Ruby On Rails 3,Updating,Insert Query,我在RubyonRails上运行insert语句。但失败了。代码如下: class BookmarkController < ApplicationController def index if request.post? @user_new = Bookmark.new(params[:user_new]) tags = @user_new.tags.split(",") @user_new = Bookmark.new(params[:user_n
class BookmarkController < ApplicationController
def index
if request.post?
@user_new = Bookmark.new(params[:user_new])
tags = @user_new.tags.split(",")
@user_new = Bookmark.new(params[:user_new])
query = "INSERT INTO bookmark (title , url, tags) VALUES (#{@user_new.title}, #{@user_new.url}, #{tags[0]}) "
Bookmark.connection.execute(query);
end
end
有谁能建议我使用SQL insert语句插入记录的正确方法吗?您需要在“值”数据上加引号。比如:
query = "INSERT INTO bookmark (title , url, tags) VALUES ('#{@user_new.title}', '#{@user_new.url}', '#{tags[0]}') "
您需要在“值”数据上加引号。比如:
query = "INSERT INTO bookmark (title , url, tags) VALUES ('#{@user_new.title}', '#{@user_new.url}', '#{tags[0]}') "
假设
Bookmark
是ActiveRecord
的子类,AR将为您保存此内容-无需编写自定义SQL-save
方法将处理此问题。您可以阅读有关ActiveRecord功能的更多信息
class BookmarkController
假设Bookmark
是从ActiveRecord
子类化的,AR将为您保存此内容-无需编写自定义SQL-save
方法将处理此问题。您可以阅读有关ActiveRecord功能的更多信息
class BookmarkController
您可以编写
MOdel.connection.insert("INSERT INTO table_name(fields) VALUES('value')")
它正在工作…你可以写
MOdel.connection.insert("INSERT INTO table_name(fields) VALUES('value')")
正在工作…非常感谢。工作正常。不要使用此代码!这是SQL注入的一个经典示例。您的用户将能够在您的数据库上执行任意SQL命令。这个答案在这里适用,并且语法正确,但是正如前面提到的,您不想在这里执行它,因为它不安全,而且有更好的Rails方法来完成同样的事情。非常感谢。工作正常。不要使用此代码!这是SQL注入的一个经典示例。您的用户将能够在数据库上执行任意SQL命令。这个答案在这里有效,语法正确,但正如前面提到的,您不想在这里执行,因为它不安全,而且有更好的Rails方法来完成同样的事情。原始SQL不应该出现在控制器中。此外,您还复制了ActiveRecord附带的功能。我建议不要在控制器中读取.Raw SQL。此外,您还复制了ActiveRecord附带的功能。我建议阅读@Mandeep_Singh如何提交/保存此插入?@Mandeep_Singh如何提交/保存此插入?