Tag: 表单

Rails模型中的inheritance模型

我正在为我的应用做一个报告系统。 我创建了一个模型ReportKind,但是因为我可以报告很多东西,所以我想制作不同类型的报告类型。 由于它们共享很多行为,我正在尝试使用inheritance。 所以我有主要模型: model ReportKind << ActiveRecord::Base end 并创建了例如: model UserReportKind << ReportKind end 在我的表report_kinds中我是类型列,直到这里它全部工作。 我的问题在于表单/控制器。 当我执行ReportKind.new ,我的表单使用’* report_kind *’前缀构建。 如果获取UserReportKind ,即使通过ReportKind.find ,表单也会构建’user_report_kind’前缀。 这会使控制器中的所有内容变得混乱,因为有时候我会有params [:report_kind],有时候是params [:user_report_kind],等等我所做的每一个其他inheritance。 无论如何强迫它使用’report_kind’前缀? 此外,我不得不强制控制器中的属性“类型”,因为它没有从表单直接获取值,是否有一个很好的方法来做到这一点? 路由是另一个问题,因为它试图基于inheritance的模型名称构建路由。 我通过在指向同一控制器的路由中添加其他模型来克服这个问题。

Railsvalidation未在嵌套模型上运行

我在Rails 3.2.8和Ruby 1.9.3上。 我无法弄清楚为什么没有运行嵌套属性的validation或返回任何错误。 当我提交没有填写任何内容的表单时,我会为父模型(用户)收到错误,但不会为子模型(帐户)收到错误。 在我的下面的代码中,我有一个用户模型has_one owned_account(帐户模型),以及一个属于所有者的帐户模型(用户模型)。 Account模型具有子域字符串的文本字段。 看来,当我提交表单而不包含子域字段时,帐户模型上的validation根本不会运行。 关于如何在此处获得validation的任何想法? 提前感谢任何帮助或指示。 user.rb class User ‘Account’, :foreign_key => ‘owner_id’ validates_associated :owned_account accepts_nested_attributes_for :owned_account, :reject_if => proc { |attributes| attributes[‘subdomain’].blank? } end account.rb class Account ‘User’ validates :subdomain, :presence => true, :uniqueness => true, :format => { …some code… } end new.haml = form_for @user do |f| […]

使用SimpleForm为每个选择选项添加一个类

我想使用SimpleForm从数组(而不是模型集合)构建一个select输入,并为每个option设置不同的类。 我希望这会起作用: f.input :method, collection: [ [“option text”, “option_value_1”, { class: “class_name_1” }], [“option text 2”, “option_value_2”, { class: “class_name_2” }] ] 问题是它会产生: option text option text 2 我怎样才能以简单的forms做我想要的(价值应该是“期权价值”)?

rails form error:语法错误,意外的keyword_ensure,期望输入结束

我无法弄清楚问题是什么。 当我转到带有表单的页面时,我收到错误: syntax error, unexpected keyword_ensure, expecting end-of-input 这是我的表单代码: :put, :class => “skill-form”, :remote => true) do %> ‘selectme’, :class => ‘field field288 chosen-select’ %> “clickme”, :class => ‘button’ %>

在rails控制器中,如何防止双重提交(当用户双提交按钮或按两次输入时)?

好吧,一切都在标题中,但我会解释一下:-) 我的rails应用程序包含许多表单(Ajaxified或不Ajaxified)。 为了防止用户提交两次或更多的表格,我使用Javascript。 这是一个Ajaxified表单的场景: 用户提交表单(clic或enter) javascript禁用提交按钮 rails控制器执行操作(如Soap请求或DB中的插入) rails控制器更新页面并在必要时启用提交按钮(如果有错误) 现在我想添加服务器端代码,以便在用户绕过javascript时保持真正干净。 有什么建议?

Rails 3:显示表单的validation错误(不保存ActiveRecord模型)

如果这是一个非常普遍和/或荒谬的问题,请道歉; 我发誓我已多次阅读文档,并且所有内容似乎都专注于ActiveRecord,以至于他们已经离开了除了创建或编辑模型数据之外的其他forms的路径。 例如,带有输入的表单可控制某些统计信息的提取和显示。 rails为validation此表单的用户输入提供了什么,不会调用save在任何记录上? 像: :email必须是电子邮件地址 :num_products必须是正整数 :gender必须是“M”或“F”之一 :temperature必须在-10到120之间 等等(大多数Web框架中标准的东西)…… Rails中有什么东西可以让我执行这个任意validation,还有一些查看帮助器来显示错误列表,或者是一切都与ActiveRecord相结合? 如果我在文档中忽略了这一点,请道歉,但这并没有真正涵盖它,至少就疲惫的眼睛所能说的那样。 划伤头 感谢Rob的回答,这就是我想出的。 我创建了一个实用程序类(恰当地命名为Validator ),它只是嵌入到我的控制器中,用于任何需要它的东西。 module MyApp class Validator include ActiveModel::Validations include ActiveModel::Conversion extend ActiveModel::Naming def initialize(attributes = {}) super attributes.each { |n, v| send(“#{n}=”, v) if respond_to?(“#{n}=”) } end end end 例如,现在在控制器中,只需定义一个内联类: class LoginController < ApplicationController class AuthenticationValidator “E-mail is a required field” […]

Rails:错误接近表单中的特定字段

我试图将一些错误添加到导致错误的字段附近的表单,这是我如何做到这一点: Description Category 我想知道是否有更好的非重复性方法。 如你所见,我重复相同的事情,除非错误……对于每个领域。

你如何在Rails 3中使用number_to_phone?

我将电话号码存储在数据库中为“1234567890”。 你如何使用number_to_phone以“(123)456-7890”的forms很好地显示数字? 我尝试了以下但它只显示了数字。 谢谢。

Ajax-submit表单上的“复选框onclick”:为什么会出现此错误?

我需要一个ajax提交表单的复选框。 以下代码抛出错误“索引112009超出字符串”。 这有什么不对? { whatever_url } do -%> “#{remote_function(‘this.form.submit();’)}” } %> 感谢您的帮助! 汤姆

Rails中多个表单复选框的数据库结构

我有一个我正在研究的rails应用程序,允许用户创建日程安排。 在这样做时,他们应该能够选择一周中哪一天发生事件。 我计划在表单中执行此操作的方式是每个工作日旁边的复选框,如下所示: 等等… 但是,我发现这可能不是一种非常有效的处理方法,将每个日期作为布尔值存储在数据库中。 在’show’视图中​​显示日期非常困难; 我必须做点什么 Event Dates: Monday Tuesday Wednesday 这对我来说似乎不太理想。 我的另一个想法是在数据库中创建一个包含所有事件日期的字符串列,使用attr_accesors和一个模型方法来创建字符串after_create。 但是,在这种情况下,用户将如何编辑事件? 它让我思考,这里必须有一些我不了解的最佳实践(我以前从未试图用这种类型的结构创建东西)。 任何建议? 谢谢!