我对红宝石有点绿,但想尝试一下,所以我想请你帮忙。我的单选按钮有问题。我成功地创建了一个单选按钮,如下所示:
<input id="user_options_true" name="user[options]" type="radio" value="true" />
<label class="collection_radio_buttons" for="user_options_true">Tak</label>
<input id="user_options_false" name="user[options]" type="radio" value="false" />
<label class="collection_radio_buttons" for="user_options_false">Nie</label>
但是现在我想在另一个页面上做声明,woudl的工作方式如下:if value true,写文本,如果为false,则写入不同的文本。我尝试这样做:
<% if user[options] == true %>
<b>Status:Ma doktora </b>
<% if user[options] == false %>
<b>Status:Nie ma doktora</b>
但我得到这样的错误:
F:/p15/app/views/pacjencis/show.html.erb:47: syntax error, unexpected keyword_ensure, expecting keyword_end
F:/p15/app/views/pacjencis/show.html.erb:49: syntax error, unexpected $end, expecting keyword_end
我的观点:
<%= simple_form_for(@pacjenci, html: {class: "form-horizontal"}) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :name %>
<%= f.input :last_name %>
<%= f.input :adres %>
<%= f.input :pesel %>
<%= f.input :telefon %>
<%= f.input :email %>
Czy lekarz przyjmował
<input id="user_options_true" name="user[options]" type="radio" value="true" />
<label class="collection_radio_buttons" for="user_options_true">Tak</label>
<input id="user_options_false" name="user[options]" type="radio" value="false" />
<label class="collection_radio_buttons" for="user_options_false">Nie</label>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
我的控制器:
> class PacjencisController < ApplicationController
# GET /pacjencis
# GET /pacjencis.json
def index
@pacjencis = Pacjenci.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @pacjencis }
end
end
# GET /pacjencis/1
# GET /pacjencis/1.json
def show
@pacjenci = Pacjenci.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @pacjenci }
end
end
# GET /pacjencis/new
# GET /pacjencis/new.json
def new
@pacjenci = Pacjenci.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @pacjenci }
end
end
# GET /pacjencis/1/edit
def edit
@pacjenci = Pacjenci.find(params[:id])
end
# POST /pacjencis
# POST /pacjencis.json
def create
@pacjenci = Pacjenci.new(params[:pacjenci])
respond_to do |format|
if @pacjenci.save
format.html { redirect_to @pacjenci, notice: 'Pacjenci was successfully created.' }
format.json { render json: @pacjenci, status: :created, location: @pacjenci }
else
format.html { render action: "new" }
format.json { render json: @pacjenci.errors, status: :unprocessable_entity }
end
end
end
# PUT /pacjencis/1
# PUT /pacjencis/1.json
def update
@pacjenci = Pacjenci.find(params[:id])
respond_to do |format|
if @pacjenci.update_attributes(params[:pacjenci])
format.html { redirect_to @pacjenci, notice: 'Pacjenci was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @pacjenci.errors, status: :unprocessable_entity }
end
end
end
# DELETE /pacjencis/1
# DELETE /pacjencis/1.json
def destroy
@pacjenci = Pacjenci.find(params[:id])
@pacjenci.destroy
respond_to do |format|
format.html { redirect_to pacjencis_url }
format.json { head :no_content }
end
end
end
真的会提供帮助。谢谢。
答案 0 :(得分:1)
<% if params[:user][:options] == 'true' %>
<b>Status:Ma doktora </b>
<% else %>
<b>Status:Nie ma doktora</b>
<% end %>
我建议使用<strong>
代码而不是<b>
。
对于true
或false
值,您通常使用<% if params[:user][:options]? %>
,但由于这是一个实际的字符串值而不是布尔值,因此上述答案应该有效。
params
部分是您访问表单传递的POST
和GET
数据的方式。
答案 1 :(得分:0)
您需要添加elsif
和end
,如下所示:
<% if user[options] == true %>
<b>Status:Ma doktora </b>
<% elsif user[options] == false %>
<b>Status:Nie ma doktora</b>
<% end %>
答案 2 :(得分:0)
<b><%= params[:user][:options]? ? 'Status:Ma doktora' : 'Status:Nie ma doktora' %></b>
此解决方案使用三元运算符:请参阅How do I use the conditional operator (? :) in Ruby?