Simple_form 和 Rails - 多项选择
Simple_form and Rails - multiple choice
我正在尝试用 simple_form 制作一个表格,并且有多项选择部分。所有数据都已保存(我有名字、姓氏、电子邮件...),但多选单选按钮始终为空字符串。
如何制作一个简单的选项列表并保存该选项?
架构:
create_table "greetings" do |t|
t.string "first_name"
t.string "last_name"
t.string "nickname"
t.string "multiple_choice"
end
控制器:
def new
@greeting = Greeting.new
end
def create
@greeting = Greeting.new(greeting_params)
@greeting.save
end
private
def greeting_params
params.require(:greeting).permit(:first_name, :last_name, :nickname, :multiple_choice)
end
日志:
Started POST "/greeting" for ::1 at 2017-07-28 17:32:19 +1000
Processing by GreetingsController#create as HTML Parameters:
{"utf8"=>"✓", "authenticity_token"=>"...",
"greeting"=>{"first_name"=>"John", "last_name"=>"Doe",
"nickname"=>"Johnny", "multiple_choice"=>""},
"multiple_choice"=>"Name", "commit"=>"Submit"} (0.2ms) BEGINSQL
(0.4ms) INSERT INTO "greetings" ("first_name", "last_name",
"nickname", "multiple_choice", "created_at", "updated_at") VALUES (,
, , , , , ) RETURNING "id" [["first_name", "John"],
["last_name", "Doe"], ["nickname", "Johnny"], ["multiple_choice", ""],
["created_at", 2017-07-28 07:32:19 UTC], ["updated_at", 2017-07-28
07:32:19 UTC]]
我想通过以下方式进行多项选择:
- 姓名
- 姓氏
- 昵称
我试过 view.slim
:
= simple_form_for @contact_form do |f|
= f.input :first_name, label: 'First name', placeholder: 'Enter first name...'
= f.input :last_name, label: 'Last name', placeholder: 'Enter last name...'
= f.input :nickname, label: 'Nickname', placeholder: 'Enter nickname...'
= f.input :multiple_choice, :collection => ['Name'], :as => :radio_buttons
= f.input :multiple_choice, :collection => ['Surname'], :as => :radio_buttons
= f.input :multiple_choice, :collection => ['Nickname'], :as => :radio_buttons
但是它保存了一个空字符串。
谢谢!
我找到了单选按钮的解决方案:
view.slim:
p Name
= f.radio_button :call_time, 'first_name'
p Surname
= f.radio_button :call_time, 'last_name'
p Nickname
= f.radio_button :call_time, 'nickname'
= f.button :submit
我正在尝试用 simple_form 制作一个表格,并且有多项选择部分。所有数据都已保存(我有名字、姓氏、电子邮件...),但多选单选按钮始终为空字符串。 如何制作一个简单的选项列表并保存该选项?
架构:
create_table "greetings" do |t|
t.string "first_name"
t.string "last_name"
t.string "nickname"
t.string "multiple_choice"
end
控制器:
def new
@greeting = Greeting.new
end
def create
@greeting = Greeting.new(greeting_params)
@greeting.save
end
private
def greeting_params
params.require(:greeting).permit(:first_name, :last_name, :nickname, :multiple_choice)
end
日志:
Started POST "/greeting" for ::1 at 2017-07-28 17:32:19 +1000 Processing by GreetingsController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"...", "greeting"=>{"first_name"=>"John", "last_name"=>"Doe", "nickname"=>"Johnny", "multiple_choice"=>""}, "multiple_choice"=>"Name", "commit"=>"Submit"} (0.2ms) BEGINSQL (0.4ms) INSERT INTO "greetings" ("first_name", "last_name", "nickname", "multiple_choice", "created_at", "updated_at") VALUES (, , , , , , ) RETURNING "id" [["first_name", "John"], ["last_name", "Doe"], ["nickname", "Johnny"], ["multiple_choice", ""], ["created_at", 2017-07-28 07:32:19 UTC], ["updated_at", 2017-07-28 07:32:19 UTC]]
我想通过以下方式进行多项选择:
- 姓名
- 姓氏
- 昵称
我试过 view.slim
:
= simple_form_for @contact_form do |f|
= f.input :first_name, label: 'First name', placeholder: 'Enter first name...'
= f.input :last_name, label: 'Last name', placeholder: 'Enter last name...'
= f.input :nickname, label: 'Nickname', placeholder: 'Enter nickname...'
= f.input :multiple_choice, :collection => ['Name'], :as => :radio_buttons
= f.input :multiple_choice, :collection => ['Surname'], :as => :radio_buttons
= f.input :multiple_choice, :collection => ['Nickname'], :as => :radio_buttons
但是它保存了一个空字符串。
谢谢!
我找到了单选按钮的解决方案:
view.slim:
p Name
= f.radio_button :call_time, 'first_name'
p Surname
= f.radio_button :call_time, 'last_name'
p Nickname
= f.radio_button :call_time, 'nickname'
= f.button :submit