【问题标题】:Undefined method error when using simple_form (newbie)使用 simple_form 时出现未定义的方法错误(新手)
【发布时间】:2015-06-09 07:19:30
【问题描述】:

我有以下 simple_form:

= simple_form_for instance do |f|
  = f.input :update_resolution, collection: 1..10
  = f.button :submit

它抛出错误:

undefined method `update_resolution' for #<Instance:0x007f0c07329640>

instances_controller.rb 我有:

  def update_resolution 
    render nothing: true, status: 200, content_type: 'text/html'
  end

而且我不能 100% 确定在 routes.rb 中放入什么最好。

目标:我正在尝试制作一个自动提交下拉菜单,以允许用户使用某些参数运行 update_resolution。

问题:

  1. 为什么会抛出此错误以及如何解决?
  2. 首选的routes.rb 策略是什么?

【问题讨论】:

  • 在您尝试调用控制器操作的表单中,... 什么鬼! ://
  • 您的f 是一个模型对象,您可以将模型内部定义的方法作为f 上的实例方法调用...而不是控制器操作..
  • OP,在你迈出一步之前,请阅读这个 - guides.rubyonrails.org/getting_started.html .. 你会明白的。
  • @ArslanAli 我很不高兴。 :/ .. 为什么不尝试一些教程然后跳入实际开发.. :(
  • @ArupRakshit 我同意。

标签: ruby-on-rails simple-form


【解决方案1】:

这可以通过一个不那么简单的模型来实现。看下面的代码:

<%= simple_form_for :user, url: users_path do |f| %>
  <%= f.input :name, as: :string %>
  ...
<% end %>

url: users_path 可以更改为您希望它发布到的操作。在您的情况下update_resolution_instance_path 该操作将获取传递给它的参数并执行它需要执行的任何操作。

我正在使用类似的东西来从字段中获取数据,然后向用户输入的电子邮件地址发送电子邮件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    相关资源
    最近更新 更多