未定义的方法“合并”为“xxxxxx”:String rails form_for [英] undefined method `merge' for "xxxxxx":String rails form_for

查看:170
本文介绍了未定义的方法“合并”为“xxxxxx”:String rails form_for的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 <%= form_for @vendor,multipart:true do | f | %GT; 
<%= f.text_field:name,Store Name%>
<%= f.text_field:地址,店铺地址%>
<%= f.file_field:image%>
<%= f.submitSave,class:btn btn-success%>
<%end%>

以及这些供应商方式:

  def new 
@vendors = Vendor.all
@vendor = Vendor.new
结束

def vendor_params
params .require(:vendor).permit(:id,:name,:latitude,:longitude,:address,:image)
end

当我尝试渲染页面时,出现此错误:

 未定义的方法商店名称的合并:字符串
提取的源代码(在第8行附近):

5:< h4>新供应商表格< / h4>
6:
7:<%= form_for @vendor,:html => {:multipart => true} do | f | %GT;
8:<%= f.text_field:name,Store Name%>
9:<%= f.text_field:address,Store Address%>
10:<%= f.file_field:image%>
11:<%= f.submitSave,class:btn btn-success%>

我不确定为什么 merge 是在这里被称为。它可能在隐藏领域吗?我发现与这个错误有关的大部分答案都与隐藏字段有关。我使用地理编码器在验证后对地理编码进行了地理编码,并且很长时间(如果这是相关的):

  class Vendor< ; ActiveRecord :: Base 


geocoded_by:address
after_validation:geocode,
:if => lambda {| obj | obj.address_changed? }
end

这里的任何帮助非常感谢!

..

 <%= form_for @vendor,multipart:true do | f | %GT; 
<%= f.text_field:name,:value => 商店名称%>
<%= f.text_field:address,:value => 商店地址%>
<%= f.file_field:image%>
<%= f.submitSave,class:btn btn-success%>
<%end%>


I have this form in /new.html.erb:

<%= form_for @vendor, multipart: true do |f| %>
<%= f.text_field :name, "Store Name" %>
<%= f.text_field :address, "Store Address" %>
<%= f.file_field :image %>
<%= f.submit "Save", class: "btn btn-success" %>
<% end %>

and these Vendor methods:

def new
    @vendors = Vendor.all
    @vendor = Vendor.new
end

def vendor_params
    params.require(:vendor).permit(:id, :name, :latitude, :longitude, :address, :image)
end

When I try to render the page, I get this error:

undefined method `merge' for "Store Name":String
Extracted source (around line #8):

5: <h4>New Vendor Form</h4>
6: 
7: <%= form_for @vendor, :html => {:multipart => true} do |f| %>
8: <%= f.text_field :name, "Store Name" %>
9: <%= f.text_field :address, "Store Address" %>
10: <%= f.file_field :image %>
11: <%= f.submit "Save", class: "btn btn-success" %>

I'm not sure why merge is being called here. Is it in a hidden field possibly? Most of the answers I found pertaining to this error had to do with hidden fields. I'm using Geocoder to geocode lat and long after validation like so (not sure if this is relevant):

class Vendor < ActiveRecord::Base


    geocoded_by :address
    after_validation :geocode,
        :if => lambda{ |obj| obj.address_changed? }
end

Any help here is much appreciated! Thanks in advance.

解决方案

you should write like this because your 2nd parameter should be an option hash, it should not be a value..

<%= form_for @vendor, multipart: true do |f| %>
<%= f.text_field :name, :value => "Store Name" %>
<%= f.text_field :address, :value => "Store Address" %>
<%= f.file_field :image %>
<%= f.submit "Save", class: "btn btn-success" %>
<% end %>

这篇关于未定义的方法“合并”为“xxxxxx”:String rails form_for的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆