如何将提交按钮与Rails数据库连接起来并保存?

时间:2019-09-26 19:42:21

标签: ruby-on-rails database submit

我试图将这行代码(这是一个提交按钮)连接到我的rails应用程序中的数据库。我想给它后的方法将节省。

我尝试给它提供(@message)参数,以使其更加具体

以下是按钮的行:

<%= link_to 'Submit', messages_path(@message), method: :post, class: 'btn-submit' %>

这是控制器:

def create
    Message.create(message_params)
    redirect_to root_path
end

当前页面仅在不保存数据的情况下重新加载。

2 个答案:

答案 0 :(得分:0)

如果您附加了Message模型代码和routes.rb文件,这将非常有帮助。但是无论如何...我会尽力解释。

通常,开发人员使用表单来提交数据。要创建Message对象,您需要从视图中传递一些数据。 More about forms。您的视图应如下所示:

<%= form_for @message do |f| %>
  <%= f.text_field :text, class: 'form-control' %> // you need to change it t be a field of your Message model
  <%= f.submit "Submit", class: 'btn-submit' %> // this is your submit button
<% end %>

在您的控制器中添加条件以检查是否创建了消息。 More info

def create
  if Message.create(message_params)
    redirect_to root_path # redirect to root path if message created
  else
    render :new # render action :new in case of errors.
  end
end

请确保传递了通过Message模型validations所需的所有数据。

我希望这会有所帮助。

答案 1 :(得分:0)

您还应该检查表单也在Rails控制台中发布的网址

您可以通过在终端中运行来检查可用的路径

rake routes | grep message

这应该返回所有包含消息的路由。 确保它正确地匹配并匹配!