Rails - 未定义的方法`model_name'对于

时间:2016-05-31 00:59:48

标签: ruby-on-rails ruby simple-form

在编辑功能中,我将获取将要编辑的对象。不幸的是,我得到了这个奇怪的错误,我可以'到目前为止了解其原因。

NoMethodError in Tasks#edit

undefined method模型名称' #Hash:0x007fe92d2afeb8

中#1行的_form.html.erb

tasks_controller:

def edit
    uri = URI.parse("http://localhost/tasks/public/api/tasks/"+params[:id])
    response = Net::HTTP.get_response(uri)
    @task = JSON.parse(response.body)['task']
end

_form.html.erb

<%= simple_form_for(@task) do |f| %>
  <%= f.error_notification %>

  <div class="form-inputs">
    <%= f.input :name %>
  </div>

  <div class="form-actions">
    <%= f.button :submit %>
  </div>
<% end %>

2 个答案:

答案 0 :(得分:1)

simple_form_for希望您将模型传递给它。基于该假设,它试图调用模型上存在的方法,但不会调用@task对象中的方法,这是JSON解析的结果。

答案 1 :(得分:0)

您只能将srun --constraint=<some_feature> <some_cmd> 类(或鸭子类型)与ActiveRecord

一起使用

但是simple_form也可以使用哈希而不是模型,例如:

simple_form 但是你必须重新构造一下