【问题标题】:Ruby on Rails passing view variable to model and backRuby on Rails 将视图变量传递给模型并返回
【发布时间】:2015-12-01 17:47:23
【问题描述】:

您好,我很难理解为什么我得到 # 而不是正确的值

查看:

<%= form_tag root_url, method: :get do %>
<p>
 <%= text_field_tag :zip_code, params[:zip_code] %>
  <%= submit_tag "Lookup", name: nil %>
 </p>
<% end %>

  <% if @zip_code %>
  <dl id ="zip_info">
    <dd> <%=  @zip_code %> </dd>
  </dl>
 <% end %>

型号:

class ZipCode < ActiveRecord::Base
    def initialize(zip) 
      return zip
    end       
end

控制器:

class ZipCodeLookupController < ApplicationController
   def index
     @zip_code = ZipCode.new(params[:zip_code]) #(params[:zip_code]) if params[:zip_code].present?
   end
end

【问题讨论】:

    标签: ruby-on-rails ruby xml ruby-on-rails-4 model-view-controller


    【解决方案1】:

    您正在显示@zip_code,它是ZipCode 类的对象。

    #ZipCode:0x8d4b030 指的是内存地址0x8d4b030 处的ZipCode 对象。

    为了查看@zip_code 对象的属性/列值,您需要这样做:

    <dd> <%=  @zip_code.attribute_1 %> </dd>
    <dd> <%=  @zip_code.attribute_2 %> </dd>
    

    等等

    【讨论】:

    • 是的,它是一个对象,但我从未实例化过。我为自己解释的方式是用户通过 params[:zip_code] 向控制器发送值,控制器调用模型,模型只返回其参数!为什么这里应该是一个对象?
    • 你是对的,你从未实例化过。如果你这样做:puts @zip_code.inspect 在你的控制器中,你会看到,它给你:#&lt;ZipCode not initialized&gt;
    • 谢谢,我是初学者
    • 欢迎,没问题:)
    猜你喜欢
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多