我遇到的问题是,订单的按钮在通过status
语句时不会根据它的elsif
整数更改它的值。这是我的elsif
<%if o.status = 1%>
<button class="btn btn-success"><%= link_to "Accept", accept_path(id: o.id) %> </button><!-- method: :post Accept-->
<%elsif o.status = 2 %>
<button class="btn btn-success">"COMPLETED" </button><!--Working-->
<%elsif o.status = 3%>
<button class="btn btn-success">Completed </button><!--Review-->
<%elsif o.status = 4%>
<button class="btn btn-success">Confirm</button><!--Confirmed-->
<%elsif o.status = 5%>
<button class="btn btn-success">PAID</button><!--Paid-->
<%else%>
<button class="btn btn-success">Contact for Issues</button> <!--Contact-->
<%end%>
目前按钮显示“Accept”/ Status:1值,无论订单的状态整数值是什么。
在为我的索引提供obj
时,我使用
@orders = Order.where(user_id: nil)
@orders_user = current_user.orders
这些部分呈现为<%= render 'order', obj: @orders_user%>
我不知道为什么这不起作用但是当我将第一个if语句发送到nil
而不是1时,按钮会立即显示“已完成”,这是status = 2
我如何分配状态,但.save?
部分也出现了错误,但我稍后会修复此问题,但这也可能是问题所在。
def create
@order = Order.where(order_params).first_or_create
@order.status = 1
if @order.save?
flash[:success] = "Order was successfully made"
redirect_to root_path
else
#flash error
render 'new'
end
end
尝试在视图中创建订单的日志是undefined method
save?'为#你的意思?保存保存!`但在控制台中日志是
Started POST "/order" for 127.0.0.1 at 2017-06-30 23:00:53 +1200
Processing by OrderController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"w3pQ3ZeluOpm0Wh9wq1h1nPZtd5zOysTJgFDrRpBpDBaSs5LYheLvO/HU6O94WFsbaugYvMYuGZNVO3bXfOPMQ==", "order"=>{"name"=>"stackoverflow", "email"=>"so@so.com", "company"=>"sososo", "event_type"=>"Birthday", "country"=>"United Kingdom", "description"=>"sososo"}, "commit"=>"Create Order"}
Order Load (0.5ms) SELECT "orders".* FROM "orders" WHERE "orders"."name" = $1 AND "orders"."company" = $2 AND "orders"."email" = $3 AND "orders"."event_type" = $4 AND "orders"."country" = $5 AND "orders"."description" = $6 ORDER BY "orders"."id" ASC LIMIT $7 [["name", "stackoverflow"], ["company", "sososo"], ["email", "so@so.com"], ["event_type", "Birthday"], ["country", "United Kingdom"], ["description", "sososo"], ["LIMIT", 1]]
(0.1ms) BEGIN
Order Exists (0.2ms) SELECT 1 AS one FROM "orders" WHERE LOWER("orders"."email") = LOWER($1) LIMIT $2 [["email", "so@so.com"], ["LIMIT", 1]]
SQL (0.5ms) INSERT INTO "orders" ("name", "company", "email", "event_type", "country", "description", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING "id" [["name", "stackoverflow"], ["company", "sososo"], ["email", "so@so.com"], ["event_type", "Birthday"], ["country", "United Kingdom"], ["description", "sososo"], ["created_at", 2017-06-30 11:00:53 UTC], ["updated_at", 2017-06-30 11:00:53 UTC]]
(0.9ms) COMMIT
(0.1ms) BEGIN
Order Exists (0.3ms) SELECT 1 AS one FROM "orders" WHERE LOWER("orders"."email") = LOWER($1) AND ("orders"."id" != $2) LIMIT $3 [["email", "so@so.com"], ["id", 4], ["LIMIT", 1]]
SQL (0.4ms) UPDATE "orders" SET "status" = $1, "updated_at" = $2 WHERE "orders"."id" = $3 [["status", 1], ["updated_at", 2017-06-30 11:00:53 UTC], ["id", 4]]
(0.3ms) COMMIT
Completed 500 Internal Server Error in 14ms (ActiveRecord: 3.3ms)
NoMethodError (undefined method `save?' for #<Order:0x007fd6416ea130>
Did you mean? save
save!):
app/controllers/order_controller.rb:27:in `create'
Rendering /Users/Jack/.rvm/gems/ruby-2.3.1@global/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout
Rendering /Users/Jack/.rvm/gems/ruby-2.3.1@global/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
Rendered /Users/Jack/.rvm/gems/ruby-2.3.1@global/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (2.3ms)
Rendering /Users/Jack/.rvm/gems/ruby-2.3.1@global/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
Rendered /Users/Jack/.rvm/gems/ruby-2.3.1@global/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.5ms)
Rendering /Users/Jack/.rvm/gems/ruby-2.3.1@global/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
Rendered /Users/Jack/.rvm/gems/ruby-2.3.1@global/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.2ms)
Rendered /Users/Jack/.rvm/gems/ruby-2.3.1@global/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (64.3ms)
答案 0 :(得分:0)
将=
更改为==
您将1分配给o.status而不是比较。
<%if o.status == 1%>
<button class="btn btn-success"><%= link_to "Accept", accept_path(id: o.id) %> </button><!-- method: :post Accept-->
<%elsif o.status == 2 %>
<button class="btn btn-success">"COMPLETED" </button><!--Working-->
<%elsif o.status == 3%>
<button class="btn btn-success">Completed </button><!--Review-->
<%elsif o.status == 4%>
<button class="btn btn-success">Confirm</button><!--Confirmed-->
<%elsif o.status == 5%>
<button class="btn btn-success">PAID</button><!--Paid-->
<%else%>
<button class="btn btn-success">Contact for Issues</button> <!--Contact-->
<%end%>