Ruby on rails提交按钮不会调用控制器

时间:2016-06-10 13:19:56

标签: ruby-on-rails ruby controller submit call

我是铁杆上的红宝石新手, 我想创建一个简单的文本字段,您可以在其中更改内容并将其存储在数据库中。但是提交按钮不会调用“个人档案”控制器。 "富"从未被提出过。

routes.rb中:

Rails.application.routes.draw do
   devise_for :users
   get 'welcome/user'
   resources :profiles
end

user.html.erb:

...
<%@profile=Profile.find_by user_id: current_user.id%>
<%= form_for (@profile) do |f| %>
<%= f.text_field :name%>
<%= f.submit%>
<% end %>

profiles_controller.rb:

class ProfilesController < ActionController::Base
  def update
     raise "foo"
  end
end

1 个答案:

答案 0 :(得分:0)

你应该把它分开。

class ProfilesController < ActionController::Base
  def edit
    @profile = Profile.find_by(user_id: current_user.id)
  end

  def update
    raise "Foo"
  end
end

并创建相关的视图文件edit.html.erb:

<%= form_for (@profile, method: ) do |f| %>
  <%= f.text_field :name %>
  <%= f.submit %>
<% end %>

至于问题本身,我建议可能会查看日志文件。在终端上运行tail -f /path/to/app/log/*,然后尝试提交表单。在这里看不到任何内容是不寻常的,如果是这种情况,请使用浏览器的开发人员工具来检查表单。你应该有类似的东西:

<form id="profile-form" action="/profiles/1" method="post">
...
</form> 

请注意action="/profiles/1,其中1是个人资料实体的ID。