我的用户模型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) 我有一个带有单选按钮的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得到一个错误,即参数太多了.
最终我想调用一个隐藏/显示其他文本字段的函数,但我甚至无法获取执行警报!
我确信这是非常简单的事情,但我一直在网上搜索这个问题的答案太久了.谢谢你的帮助!