модель сохраняется в консоли, а не из веб-интерфейса - PullRequest
0 голосов
/ 02 февраля 2012

Я задавал этот вопрос ранее сегодня и с консоли все работает как положено.Однако, когда я построил свою форму для включения (например, ajax, стилей), она, похоже, не сохраняет в модель.

Есть идеи, как сделать мое исправление?

ура -

Регистрация Модель

class Signup < ActiveRecord::Base
  attr_accessible :email_address, :send_once, :send_any_time
  # email_regex = stub it out later
  validates :email_address, presence: true,
                        #format: {with: email_regex},
  uniqueness: {message: 'there can only be one you.'} 
 end

PagesController

class PagesController < ApplicationController
 def index
  @signup = Signup.new
  end

 def create
   @signup = Signup.new(params[:signup])
    if @signup.send_once == "1" or @signup.send_any_time == "1"
     respond_to do |format| 
      if @signup.save
       format.js
      else
       format.html {render action: :index}
      end
   end
  else
   #if they don't sign, do something!
  end
 end
end

__ form.html.erb_

<%= form_for(@signup, method:post, as: :signup, url: pages_path, html: {id: "button"}, remote: true) do |f| %>
  <% if @signup.errors.any? %>
    <div id="error_explanation">
    <p><%= pluralize(@signup.errors.count, "error") %> prohibited this post from being saved:</p>
   <ul>
    <% @signup.errors.full_messages.each do |user| %>
    <li><%= user %></li>
    <% end %>
   </ul>
  </div>
 <% end %>

 <div class="field">
   <%= f.label :email_address %><br />
   <%= f.email_field :email_address %>
   <%= f.label :send_once %><br />
   <%= f.check_box :send_once %>
   <%= f.label :send_any_time %><br />
   <%= f.check_box :send_any_time %>

  </div>

  <div class="actions">
   <%= f.submit %>
  </div>
<% end %>

1 Ответ

0 голосов
/ 02 февраля 2012

Я думаю, что эта строка - ваша проблема:

if @signup.send_once == "1" or @signup.send_any_time == "1"

К тому времени, когда параметры пройдут через модель, они, вероятно, true, а не "1". В Ruby и Rails есть очень тонкое отличие от них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...