小编use*_*309的帖子

Rails嵌套表单不能保存孩子

我的用户模型has_many响应.我正在尝试创建一个嵌套表单来创建一个具有三个子响应的新用户.我的代码看起来与Rails强制转换相同,但是虽然它会保存用户,但它不会保存它们的响应.任何人都可以看到有什么问题?

users_controller.rb

class UsersController < ApplicationController
  def new
    @user = User.new
    3.times{@user.responses.build}
    @responses = @user.responses
  end

  def create
    @user = User.new(user_params)
    if @user.save
      redirect_to @user #todo: where do we want to redirect?
    else
      render 'new'
    end
  end

  def show
    @user = User.find(params[:id])
    @responses = @user.responses
  end

  def index
    @users = User.all
  end

  private

    def user_params
      params.require(:user).permit(:username, :email, :responses)
    end
end
Run Code Online (Sandbox Code Playgroud)

user.rb

class User < ActiveRecord::Base
  attr_accessor :responses_attributes
  has_many :responses, :dependent => :destroy
  accepts_nested_attributes_for :responses#, :reject_if => lambda { |a| a[:content].blank? …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails has-many nested-forms

7
推荐指数
1
解决办法
2466
查看次数

Rails:在form_for单选按钮上调用JS函数

我有一个带有单选按钮的form_for,我想在单选按钮更改时调用javascript函数.

单选按钮用于章节的字段'type',类型为boolean.

<%= form_for([book.category, book, chapter], remote: true ) do |f| %>

    <%= f.radio_button :type, true, onKeyUp: "alert('hi')", checked: 'checked' %> 
    <%= f.label :type, 'Link' %>

    <%= f.radio_button :type, false, onKeyUp: "alert('hi')" %> 
    <%= f.label :type, 'Text' %>

<% end %>
Run Code Online (Sandbox Code Playgroud)

我也试过onchange和onclick.我尝试在选项之前添加一个{},我从Rails得到一个错误,即参数太多了.

最终我想调用一个隐藏/显示其他文本字段的函数,但我甚至无法获取执行警报!

我确信这是非常简单的事情,但我一直在网上搜索这个问题的答案太久了.谢谢你的帮助!

javascript ruby-on-rails form-for

0
推荐指数
1
解决办法
4312
查看次数