Tag: 形成

使用连接表元数据创建Rails 4表单

非常新的Rails 4开发人员。 我有一个用户正在创建练习的表单。 练习可以有很多设备,而设备可以是可选的(想想俯卧撑是做俯卧撑)。 我将此“可选”字段存储在连接表exercise_equipment中。 我无法获取参数来实际发送我选择的集合元素的值。 请参阅下面的模型,视图,控制器和参数。 以下是我的模型的属性/关系: # id :integer # name :string # is_public :boolean Exercise has_many :exercise_equipment has_many :equipment, :through => :exercise_equipment accepts_nested_attributes_for :exercise_equipment # id :integer # exercise_id :integer # equipment_id :integer # optional :boolean ExerciseEquipment belongs_to :exercise belongs_to :equipment accepts_nested_attributes_for :equipment # id :integer # name :string Equipment has_many :exercise_equipment […]

表单中的Rails选择标记不会在编辑视图中填充值

我有一个由成员模型的脚手架生成的典型rails _form。 对于参数:状态我正在使用选择标记: true, :prompt => ‘State’ }, { :class => ‘form-control’ } %> 使用辅助方法(我们陈述): def us_states [ [‘AK’, ‘AK’], [‘AL’, ‘AL’], #etc 对于参数“member_since”,我使用的是select_year帮助器: 2013, :end_year => 1920, :field_name => ‘member_since’, :prompt => ‘Choose year’, prefix: :member}, {:class => “form-control”} ) %> 现在,这两个选项都可以创建新记录,但在编辑记录视图中都没有预填充任何字段。 有什么想法吗?

复杂表单嵌套在Rails中 – 如何创建所需的哈希/数组参数输出

我试图弄清楚如何正确处理params哈希,因为我不传递应该嵌套多次的params .. 这是我的html.slim代码的简化(删除不需要的信息,如标签等)(使用simple_form): = f.simple_fields_for :room do |r| – (1..4).each do |room| = r.input ‘adults’,:collection => 1..4,:input_html => {:name => “room[adults][]”} = r.input ‘children’,:collection => 0..2,:input_html => {:name => “room[children][]”} – (1..2).each do |child| = r.input ‘child_age’,:input_html => {:name => “children[#{child}][ages][]”} 好吧这个输入1个房间,1个成人,1个5岁的孩子我们得到这样的参数: “room”=>{“adults”=>[“1”, “1”, “1”, “1”], “children”=>[“1”, “0”]}, “children”=>{“1″=>{“ages”=>[“5”, “”]}, “2”=>{“ages”=>[“”, “”]}} 我真正想要的对象是: “room”=>{“adults”=>[“1”, “1”, […]

无法将本地对象传递给Rails 3中的嵌套部分

我希望有人可以阐明可能是一个简单的错误。 我试图将局部变量文章(在部分_article.html.erb中)传递给_article.html.erb中的另一个部分嵌套。 当部分代码在_article.html.erb中时,它工作正常。我尝试了很多变种(包括:本地人),但似乎无法传递局部变量。 _article.html.erb ‘unfavorite’, :object => article %> ‘favorite’, :object => article %> _favorite.html.erb(最喜欢的和不喜欢的都或多或少相同,所以我只发了一个) { :method => :delete, :class => ‘unfavorite_form’, }, :remote => true do |f| %> “Favorite”, :id => “favorites_button”, :title => “Remove from favorites”) %> 错误消息是: undefined local variable or method `article’ for #<#:0x6727a58>

同时将多个项目添加到购物车

我有以下关系: Class CartItem belongs_to :cart belongs_to :product Class Product ( category) has_many :cart_items Class Cart has_many :cart_items 当有人将产品添加到购物车时,它会在CartItem表中使用cart.id和product.id创建一行。 我可以添加和删除产品到编辑页面上的购物车,它的工作原理。 但现在我想在同一时间向购物车添加或删除多个产品。 当客户可以输入我们想要添加/删除的号码时,我只需要输入数字字段。 但是,我没有设法这样做,因为在编辑表单中,如果我放置一个名为“number”的字段(对于每个产品),显然会出现错误,因为没有属性“number”。 我应该添加一个“field_tag”,但它怎么能起作用? 提前致谢

has_and_belongs_to_many关系的自定义活动管理表单输入

我有一个非常简单的模型 class Lifestyle < ActiveRecord::Base attr_accessible :name has_and_belongs_to_many :profiles end 与Profile有has_and_belongs_to_many关系 class Profile < ActiveRecord::Base attr_accessible … belongs_to :occupation has_and_belongs_to_many :lifestyles accepts_nested_attributes_for :lifestyles end 我想使用ActiveAdmin编辑Profile对象,但也将Lifestyles分配给配置文件。 它应该类似于处理belongs_to :occupation Occup,因为它由ActiveAdmin自动整理到一个预先填充了可用职业的选项的dropbox。 我曾尝试使用has_many表单构建器方法,但这只是让我显示一个表单来输入生活方式的名称,并在提交时,它返回了一个错误。 f.object.lifestyles.build f.has_many :lifestyles do |l| l.input :name end 我得到的错误: Can’t mass-assign protected attributes: lifestyles_attributes 对我来说,最好的方法是构建几个复选框 ,一个用于DB中的每个Lifestyle。 选择表示生活方式连接到配置文件,未选择意味着删除关系。 我非常怀疑使用ActiveAdmin可以实现这一点,并且无需创建非常复杂的逻辑来处理这个问题。 如果你提出你的意见并告诉我是否应该采用这种方式或采用不同的方法,我将非常感激。

在Rails中,如何更新模型中的表单字段?

让我假装我想将我指定的所有字段设置为=“frog” 在模型中,我可以使用以下方法手动设置每个: self.field1 = ‘frog’ self.desc_field = ‘frog’ self.fieldx = ‘frog’ etc…. 但是如何通过将字段名称放在数组中呢? 当我尝试 fields_array=[‘field1′,’desc_field’,’fieldx’] fields_array.each { |field| self.field = ‘frog’ } 这是行不通的。 有什么建议?

Rails 3:未定义的方法`remote_form_for’

我在HAML中有一个相当简单的Rails远程表单,部分在共享/用户之下: – remote_form_for :user, :url => { :controller => “users”, :action => “create” } do |f| .field = f.label :name, t(‘name’) = f.text_field :name .field = f.label :email, t(’email’) = f.text_field :email .actions = f.submit 无论我多么愚弄它,这都行不通。 我总是得到以下错误: undefined method `remote_form_for’ for #<#:0x1036dfd90> 我做了些蠢事吗? 它与form_for完美配合。

获取要使用的表单:method =>:delete(rails)

我有一个包含许多line_items的购物车。 我希望每个订单项旁边都有一个“删除”按钮,点击该按钮后会从购物车中删除line_item。 我知道我可以使用button_to方法执行此操作,但我想使用form_for,因为我想同时更改line_item的父对象的属性(每个line_item也属于一个课程,我会喜欢告诉课程的父母,它不再在购物车中)。 这是我使用form_for的代码: :delete, :remote => true) do |f| %> “Delete” %> ruby文档说只需添加:method =>:delete应该可以工作(http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for),但渲染的html不是完全正确。 它仍然是 但它应该是: 我究竟做错了什么?

在lib文件夹中使用Ruby Object时未初始化的常量错误

我有一个相当复杂的应用程序,在lib文件夹中使用Ruby Objects(我第一次使用ruby对象)。 我一直得到一个未初始化的常量错误,如下所示: 通过复选框Rails 4添加多个嵌套属性(可能有多个表单) uninitialized constant ProjectsController::ProjectUpdater 我的表单尝试做的是根据预制的“模板”任务和里程碑创建启动任务和启动里程碑。 因此,当用户创建项目时,他们已经添加了一些常见任务。 此代码与此前的问题和答案直接相关: 我的控制器: class ProjectsController < ApplicationController def new_milestones @project.milestones.build @project.tasks.build @milestones_templates = MilestoneTemplate.where(template_id: @project.template_id) end def update respond_to do |format| **result = ProjectUpdater.perform(@project, update_params) == true** []}, {:ids => []}, { :milestone_ids => []},:id, :name, :project_id, :milestone_template_id, :project_id, task_attributes: [{:names => []}, {:ids => []}, […]