【问题标题】:Rails XML undefined method `name' for "preview":StringRails XML 未定义方法“预览”的“名称”:字符串
【发布时间】:2011-09-12 09:53:48
【问题描述】:

我的 XML 错误:

NoMethodError in Admin/xml#index

Showing C:/Rails/asdw/app/views/admin/xml/index.rhtml where line #1 raised:

undefined method `name' for "preview":String

Extracted source (around line #1):

1: <% update_xml("preview") %>
2: 
3: 
4: <h2>Preview/publish</h2>

我的控制器:

def index
    @photographer = Photographer.find(:first)
    #render :layout => false
end 

我的 XML 助手:

   module XmlHelper
        require 'builder'

            def update_xml(photographer, output="preview") 

                xml = Builder::XmlMarkup.new



                 xml.photographer(:name => photographer.name) do    



                  for group in photographer.groups 
                    xml.group(:name => group.name) do 
                    for project in group.projects 
                        xml.project(:name => project.name) do 
                                    for collection in project.collections
                                        xml.collection(:name => collection.name) do 
                                            for image in collection.images
                                                xml.image(image.description, :url => image.image, :id => image.id)


                                            end 
                                        end     
                                    end 
                        end 
                    end
                    end     
                  end       
                end           


                File.open("#{rails_root}/public/xml/#{output}.xml", "w") do |f|
                  f.puts ("#{xml}")
                end 


        end 






end

更新:

使用&lt;% update_xml(photographer, "preview") %&gt;

NameError in Admin/xml#index

Showing C:/Rails/asdasd/app/views/admin/xml/index.rhtml where line #1 raised:

undefined local variable or method `photographer' for #<#<Class:0x47eb990>:0x47ea238>

新更新使用 &lt;% update_xml(@photographer, "preview") %&gt;:

oMethodError in Admin/xml#index

Showing C:/Rails/asdfsadf/app/views/admin/xml/index.rhtml where line #1 raised:

undefined method `groups' for #<Photographer:0x45ca2d8>

Extracted source (around line #1):

1: <% update_xml(@photographer, "preview") %>
2: 
3: <h2>Preview/publish</h2>

【问题讨论】:

  • 这是一些疯狂的缩进。我会考虑使用两个或四个空格,始终如一 - 让人们更容易提供帮助。
  • 能否请您提供您的控制器代码?
  • 我已经包含了我的控制器代码。

标签: ruby-on-rails ruby ruby-on-rails-3 view-helpers


【解决方案1】:

您能否尝试在 Admin/xml#index 中使用“" 而不是 ,如果您再次遇到错误,请告诉我!

【讨论】:

  • 我已经尝试过,我已经在考虑错误的情况下修改了我的问题。
【解决方案2】:

确保在您的摄影师模型中具有groups 关联,例如:

has_many :groups

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    相关资源
    最近更新 更多