Tag: forms

处理带有restfull路由的错误消息的表单时,link_to_unless_current失败

有谁知道如何防止link_to_unless_current的失败机制? fe:我有我的页面导航 link_to_unless_current “new task”, new_task_path 当我点击链接时,我来到新的taks路径表单…并且没有创建链接 – >确定。 然后我在表单中输入错误的值并提交。 TasksController处理“创建”操作,ActiveRecord模型的validation因数据不正确而失败,并且控制器呈现“新”操作(并包含模型的错误消息)。 class TasksController “new” end end end 但是这里链接被创建了! – >由于url之间的区别: link path = new_task_path 但 posted path = tasks_path with :method => :post 有人知道如何彻底解决这个问题吗? 谢谢

Rails循环遍历表单字段中的数据

我想在我的表单中的数据库中循环数据。 我想对数据做什么把它放在标签和文本框中。 我怎么能在铁轨上这样做? 我只是使用.each块在表单内循环它吗? 我在我的数据库中拥有它的原因是因为我的客户希望能够自己添加表单字段数据。 例如,这是我想做的事情: @fields.each do |field| 完成这样的事情最好的方法是什么? 请不要用railscast回答:) 提前致谢

将提交按钮标签设置为“创建模型”而不是在rails中的form_for中的“更新模型”

我正在使用form_for和现有模型渲染表单。 我想提交该模型并将下一个要执行的操作作为“创建”操作。 文档有这个例子: 并说“在上面的示例中,如果@post是新记录,它将使用”创建post“作为提交按钮标签,否则,它使用”更新post“。 我是相对较新的rails,我不知道如何使用I18n定制的文档中的以下内容。 如果有现有记录,如何让提交按钮使用“创建”? 澄清。 。 。 我将form_for从新动作中渲染出来,但我将它传递给现有对象,以便可以对字段进行预先解析。 我希望它然后转到创建操作,但它将转到更新。 更新。 。 。 我现在意识到问题在于form_for而不是提交,但还没有弄清楚如何修改form_for以便它发送到create动作。

允许的属性的未允许参数错误

我有一个用于做志愿者安排的rails应用程序 。 class次有多个工人。 我正在尝试将工作ID从编辑表单传递给class次控制器 。 输入表单是使用适当的元素生成的: username 在控制器中,我有以下代码: def shift_params params.require(:shift).permit(:start, :end, :size, :task_id, workers: []) end 尽管如此,我在编辑轮class时遇到以下错误: Unpermitted parameters: workers

设计两种型号

我正在使用“嵌套身份validation”构建应用程序这意味着我有一个House模型(带有设计),并且一个房子有很多用户,一旦进入House身份validation,我希望用户也可以登录。 我还添加了一个带有Devise的用户模型。 我的问题是,现在我收到错误,因为我为Houses设计的设计sign_up表单不适用于User模型。 如何使用设计为两个不同的用户模型创建单独的sign_up和sign_in表单? 或者有更好的方法来做这件事吗? 谢谢!

Rails 5.1.2 – form_with未在html中显示data-remote =“true”

Rails 5.1.2: 我正在尝试使用form_with根据Rails文档和此GitHub线程创建一个AJAX表单。 这段代码: 实际上这段代码: 都产生这个HTML: 为什么HTML中没有出现data-remote=”true” ,因为我发布的第一个链接表明它应该,以及如何让它出现?

Rails:form_for中的隐藏字段不向控制器发送参数

我有一个form_for我在我的视图助手中制作,这将让一个用户从一个组中提升另一个用户。 def promote_button_for(group, user) membership = group.get_membership( user ) form_for membership, :url => group_membership_path( group, membership ) do |f| f.hidden_field :group_creator hidden_field_tag ‘test’, ‘1’ f.submit( “Promote”, :onclick => “return confirm(\”Are you sure you want to promote #{user.email} to an officer?\”)” ) end end 当我通过按钮提交表单时,我似乎没有将任何隐藏的字段参数发送到控制器。 Started POST “/groups/1/memberships/6” for 127.0.0.1 at 2011-02-01 01:45:32 -0600 Processing by […]

在Rails 4中保存嵌套模型

有点像Rails的新东西,有点像。 其中一个模型依赖于has_many / belongs_to关联中的另一个。 基本上,在我的应用程序上创建“发布”时,用户还可以附加“图像”。 理想情况下,这是两个独立的模型。 当用户选择照片时,一些JavaScript会将其上传到Cloudinary,并且返回的数据(ID,宽度,高度等)将被JSON字符串化并设置在隐藏字段上。 # The HTML = f.hidden_field :images, :multiple => true, :class => “image-data” # Set our image data on the hidden field to be parsed by the server $(“.image-data”).val JSON.stringify(images) 当然,这种关系存在于我的Post模型中 has_many :images, :dependent => :destroy accepts_nested_attributes_for :images 和我的图像模型 belongs_to :post 我丢失的地方是如何处理Post控制器的创建方法中的序列化图像数据? 简单地解析JSON并保存它不会在保存时创建带有数据的Image模型(并且感觉不对): params[:post][:images] = JSON.parse(params[:post][:images]) 所有这些基本上都达到了以下参数: {“post”: {“title”: […]

Rails:在textfield中执行onchange远程函数时如何从另一个字段获取值

我想创建一个表格来预订借来的物品。 预订包括接送时间,返回时间和服务器想要借入的项目及其金额。 例如,我可能想在本周余下的时间里预留三个盘子,三把刀和三个叉子。 在表单中,我想做一个AJAXvalidation,检查是否有足够的项目可用。 在每个项目旁边,我有一个文本框,reserver输入项目数量。 在输入之后,我想进行一次onchange调用,检查给定日期的项目数量是否可用。 因此,我需要传递onchange以下参数中调用的远程函数:item id,item amount(当前文本字段的值)以及上面的datetime_select字段中给出的拾取时间和返回时间。 这是我的代码: 3, :onchange => “#{remote_function(:url => { :controller => :items, :action => :availability }, :with => with, :update => availability_url) }” %> 显然,这不起作用,因为@ reservation.return_time和@ reservation.pick_up_time尚未设置,因为表单尚未发送。 我的问题是:我如何获得这些价值观? 我相信它应该通过javascript调用完成,但我没有设法在“with”变量中插入一个javascript调用,或者至少没有让它工作。 有谁知道我应该怎么做?

Rails使用多个字段更新单个属性

我目前正在尝试创建一个名为countcash的表单,允许用户输入实际的季度,硬币,镍币,便士,二十,数十,五,一的数量,然后输入现金箱中任何其他项目的货币价值,然后当他们点击提交时,我想总计这些值并设置我当前class次记录的cashstart字段。 真正的问题是我不确定我的表单应该是什么样子以及在这种情况下应该如何设置控制器/模型。 我在session[:shift_id]变量中保存了shift_id,并且带有该id的shift是我想用计算的cashstart修改的class次。 如果我想正确地遵循MVC,那么标签需要看起来是什么?如何设置控制器/模型以使用计算值更新数据库? 我该怎么设置路线? 我在堆栈溢出或其他rails论坛上找不到这样的东西(尽管你认为通过多个文本字段修改单个属性会非常简单) 作为参考,这是我以前使用的forms(无济于事) 应用/视图/ countcash.html.erb Coins Quarters: Dimes: Nickels: Pennies: Bills Twenties: Tens: Fives: Ones: Other Value (in $): 这是我的shift_controller,目前没有做任何事情,因为我不确定在点击提交按钮后我需要如何更新属性 def countcash @shift = Shift.find(session[:shift_id]) redirect_to(login_path) end