Tag: 表单

通过哈希或数组更新

我想更新Period Model中的subject_id字段。期间循环将在Form中。 因此,当我提交表单时,传递的参数将作为哈希,其中Key是Period.id ,值是subject_id 。 那么,我该如何更新它。 在我的Show.html.erb中我有 我有SHOW的动作 def show @period = Period.all end 在我有的更新操作中 def update @period = params[:id] keys, values = @period.map { |k,v| [k.to_i, v.to_i] }.transpose values.each { |f| Period.all.update_all(:subject_id => f) } end 其中@period = params[:id]给出一个参数 #Parameters: {“utf8″=>”✓”, “authenticity_token”=>”8SNaUIQ6ZwjYOqBX07QYyVJsbuvYTL2TotSqIg0yj98nYXq5XqJ5XRHqlCvl1aw0lLg9vowyDOl3Hhm+hYDaOA==”, “id”=>{“1″=>”3”, “4”=>”2″}, “commit”=>”Save changes”} 其中哈希中的1和4是period_id 散列中的3和2是subject_id。 然后我将哈希转换为键和值 其中键是period_id 值是subject_id。 然后我循环使用值并更新Period。 它正在更新,但问题是只更新了最后一个值2,其中每个subject_id变为2,我不会发生3(第一个值)发生的情况,只更新最后一个值。 我只是敲打头来解决这个问题两天。 […]

Rails 5:嵌套表单和现有关联对象

我对Rails比较陌生,所以请原谅我,如果这是一个非常天真的问题。 :] 我有两个可以标记的模型: Collection和Video 。 我通过具有多态关联的Tag模型和has_many :through与Tagging关联来支持这一点。 这一切都很完美。 我正在弄清楚的是如何设置视图以适应这种情况。 我知道如果我只是创建或更新与单个模型唯一关联的标签,那么我可以使用一个简单的表单并将accepts_nested_attributes_for添加到我的模型中,但我遇到的问题是我想首先检查是否存在标记,只有在它不存在时才创建它,否则只需将现有标记与新video或集合相关联。 显然我可以在控制器中手动执行此操作,但由于Rails提供了一种自动创建和更新关联对象的机制,我想知道它是否提供了与关联现有对象类似的东西? 另外,我不确定是否应该嵌套tags资源并在TagsController集中处理它,或者我是否应该从拥有对象的控制器管理标签,例如VideosController 。 任何帮助或建议将不胜感激。

如何从一个提交更新两个_form?

如果他选择,current_user如何更新他的电子邮件而无需单独的提交按钮? 当前代码 总体思路 # Or somehow remove form_for(current_user) altogether while still being able to update current_user.email within the form_for(@challenge) _form的形象 提供控制器代码,看看我们是否可以通过fields_for来完成这项工作 challenges_controller class ChallengesController [], :committed => []) end end users_controller class UsersController < ApplicationController before_action :logged_in_user, only: [:index, :edit, :update, :destroy, :following, :followers] before_action :correct_user, only: [:edit, :update] def show @user = User.find(params[:id]) @past_challenges […]

为什么Devise一直问我这个名字不能是空白的?

我是Rails的新手,我正在与Devise合作。 我面临的问题是我的表单在注册时没有更新用户的名称列。 我在数据表中有name属性,但我似乎无法使用设计注册中的表单来更改它。 Sign up resource_name, :url => registration_path(resource_name)) do |f| %> true %> class User < ActiveRecord::Base # Include default devise modules. Others available are: # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable has_many :posts end Scheme.rb ActiveRecord::Schema.define(version: 20130622203624) do create_table “posts”, force: true do |t| t.integer […]

如何使用Rails 4在一个表单中添加多个多对多字段?

我有一个表格,有以下关联: Course.rb has_and_belongs_to_many :skills Skill.rb has_and_belongs_to_many :courses 我想做的是允许想要添加新Course的人从他选择的类别中选择所有技能,并能够使用复选框添加它们。 在视图中,我这样做了: 视图 s.id %> 遗憾的是这不起作用,我收到以下错误: undefined method `{:value=>9}’ for # 你能帮我找到解决问题的方法吗? 谢谢。

如何在1个表格中包含2个模型?

一个模型创建:name,:metric(Quantified.rb),另一个创建:result_value,:result_date(Result.rb)。 class Quantified { where(categories: ‘Monthly Average’) } scope :instance, -> { where(categories: ‘One-Time Instance’) } has_many :results CATEGORIES = [‘Monthly Average’, ‘One-Time Instance’] end class Result < ActiveRecord::Base belongs_to :user belongs_to :quantified end 我需要在_form和/或控制器中做什么才能允许用户将他的results_date和results_value(结果_form)添加到相应的名称和指标(quantieds _form)? prohibited this quantified from being saved: Date: [:month, :year], class: ‘date-select’ %> prohibited this result from being saved: Date: […]

Rails中的多个提交按钮/表单

我正在尝试编写一个rails应用程序,它允许你去某个页面,比如/ person /:id。 在此页面上,它显示了一组可用资源。 我希望每个资源旁边都有一个按钮,它将该资源保留给该人(通过创建分配模型的新实例。)作为扩展,我想要每个资源的几个按钮,取消预订并执行其他事情。 我还想在一些按钮旁边输入数据,例如分配一些资源。 我的问题是我无法解决如何在不重复自己或拥有非常黑客的控制器的情况下明智地做到这一点。 如何在不匹配提交按钮的值部分(按钮上的文本)或使用任何javascript的情况下执行此操作? 此外,如果页面上有两个表单,如何设置它,以便在单击任何提交按钮时保存两个表单上的更改?

Ruby on Rails:搜索表单 – 多个搜索字段

我正在尝试创建一个允许用户搜索数据库的应用程序。 搜索页面布局会显示一些下拉菜单,这些菜单会显示数据库中已有的数据以缩小搜索范围,还会显示文本框以允许用户输入关键字,如“项目名称”。 我在使用rails获取搜索表单中输入的所有信息并执行一次大搜索时遇到问题。 这是我的搜索布局的一部分: ‘get’ do %> nil %> nil %> 这是我在项目控制器中的索引和搜索操作: def index @projects = Project.all respond_to do |format| format.html # index.html.erb format.json { render :json => @projects } end end def search @project_search = Project.search(params[:search]).order(sort_column + ‘ ‘ + sort_direction).paginate(:per_page => 5, :page => params[:page]) end 这是我的models / project.rb文件的一部分 def self.search(search) if search […]

如何在Rails 3中validation非模型表单?

假设我有一个搜索表单,我想validation关键字的长度。 我希望表单突出显示无效字段(如模型表单)。 我到处寻找,似乎无法找到有关在Rails 3中validation非模型支持的表单的任何有用信息。我已经尝试了可validation的 gem,但这似乎不适用于Rails 3: undefined method `model_name’ for Login:Class. 有任何想法吗?

如何在rails上的ruby中创建向导表单

我正在尝试了解在轨道上的ruby中提取向导表单的最佳选项。 理想情况下,我想拥有它,以便应用程序注册有一个后退和下一个按钮,允许用户按步骤提交数据。 因此,在第1步中,他们可以填写联系信息。 一旦完成,他们可以点击下一步并在第2步填写付款信息等。如果他们犯了错误,他们可以点击并更正它。 将需要一些步骤,而其他步骤则不需要,但您必须将其提交到最后一步以将数据提交到数据库以进行注册。 然后,他们需要能够在完成后以相同的方式返回并填写过去的步骤。 (例如:如果他们点击个人资料链接,他们可以以相同的方式重新完成步骤,因为他们不想立即完成所有步骤。也许在完成注册步骤之前给出一个跳过按钮? )。 我还需要validation已经完成的步骤,以防止他们进入下一步,直到纠正或完成。 选项1)我注意到ajax已被推荐作为stackoverflow上其他问题的一个选项。 我遇到的唯一问题是,如果禁用了javascript,用户将无法注册。 理想情况下,我希望它能够在轨道上使用ruby,但是我愿意使用任何必要的东西来使它工作。