Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用RubyonRails发送电子邮件地址的值?_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何使用RubyonRails发送电子邮件地址的值?

Ruby on rails 如何使用RubyonRails发送电子邮件地址的值?,ruby-on-rails,Ruby On Rails,我有一个类似下面的表单区域,如果您有电子邮件地址,我希望发送该电子邮件地址的值。但我得到一个错误,没有价值 我希望通过电子邮件发送电子邮件的值 nil:NilClass的未定义方法“value” Extracted source (around line #71): rad_check = params[:emailaddress] **data = RadCheck.find_by(emailaddress: params[:emailaddress]).value** RadChec

我有一个类似下面的表单区域,如果您有电子邮件地址,我希望发送该电子邮件地址的值。但我得到一个错误,没有价值

我希望通过电子邮件发送电子邮件的值

nil:NilClass的未定义方法“value”

Extracted source (around line #71):

 rad_check = params[:emailaddress]
 **data = RadCheck.find_by(emailaddress: params[:emailaddress]).value**
 RadCheckMailer.rad_check_forgot(rad_check, data).deliver
rad_检查控制器.rb

def forgot    
  rad_check = params[:emailaddress]
  data = RadCheck.find_by(emailaddress: params[:emailaddress]).value
  RadCheckMailer.rad_check_forgot(rad_check, data).deliver           
end
rad\u check\u mailer.rb

class RadCheckMailer < ApplicationMailer
    default :from => "test@domain.com"

    def rad_check_forgot(emailaddress, data)
        @rad_check_data = data
        mail(:to => emailaddress, :subject => "Forgot")
    end
end
class RadCheckMailer”test@domain.com"
def rad_check_忘记(电子邮件地址、数据)
@无线电检查数据=数据
邮件(:收件人=>emailaddress,:主题=>“忘记”)
结束
结束
rad\u check\u遗忘.text.erb

<%= @rad_check_data %>

Tanks!

坦克!
.html.erb

    <%= form_tag 'forgot' do %>

      <div id="error" class="middle-box text-left loginscreen">
        <%# Error Messages display here! %>
      </div>



      <div class="form-group">
        <%= text_field_tag  "emailaddress" %>
      </div>



      <div class="form-group">              
        <%= submit_tag "submit"%>
      </div>
    </div>
    <% end %>
    <p class="m-t"> <small>Corperation &copy; 2019</small> </p>
  <div>
</div>

合作与复制;2019年

放射性检查表

class CreateRadChecks < ActiveRecord::Migration[5.2]
  def change
    create_table :rad_checks, force: :cascade do |t|

      t.string :value,        :limit => 253, default: "",   null: false      
      t.string :emailaddress


      t.timestamps

    end
    add_index(:rad_checks, :emailaddress, {:name=>:emailaddress, :length=>{:emailaddress=>32}, :using=>"btree"})
  end
end
class CreateRadChecks253,默认值:“”,null:false
t、 字符串:emailaddress
t、 时间戳
结束
添加索引(:rad\u checks,:emailaddress,{:name=>:emailaddress,:length=>{:emailaddress=>32},:using=>“btree”})
结束
结束

我认为您不能将列名作为“值”,它是一个保留关键字。请检查一下

更新:您是否获得
参数[:emailaddress]
值?如果它得到了,那么它应该出现在RadCheck表中。当您使用
find_by
方法时,如果条件为false,它将返回
nil
。所以当我们得到nil时,就没有nil.vlaue的作用域。这就是你犯错误的方式

请检查表记录中是否存在参数[:emailaddress]的值。试试下面的代码

if params[:emailaddress]
  rad_check = params[:emailaddress]
  data = RadCheck.find_by(emailaddress: params[:emailaddress]).value
  RadCheckMailer.rad_check_forgot(rad_check, data).deliver 
end

你说得对,我改了,但问题是一样的……”data=RadCheck.find_by(emailaddress:params[:emailaddress]).radvalue“当我在中键入电子邮件地址时”test@test.com“电子邮件不是params[:emailaddress],而是来并工作的。首先,通过在控制器中像
data=RadCheck这样插入参数。通过(emailaddress:params[:emailaddress])
查找参数。”。它是返回值,那么上面的代码应该是工作的,否则它将给出以下Nil类错误。当我输入表单地址时,我得到了这个错误。RadCheck表中有数据test@test.com还有radvalue列,但是当我尝试输入上面的链接时,表单没有出现在我面前,我得到了错误。当我将其替换为“email address”而不是params[:emailaddress]时,一切都可以正常工作。首先,通过像data=RadCheck一样在controller中填充参数。find_by(emailaddress:params[:emailaddress])。它是返回值,那么上面的代码应该是有效的,否则它将给出以下Nil类错误。。。。。我用你写的东西做了一些实验。但是我没有成功,你能给我一个示例代码吗?你使用的是强参数还是数据库中存在记录?注册表有可用的电子邮件地址:test@test.com值:测试数据。